大家帮我看看,触发器问题,怎么在触发器中查寻返回数据?
CREATE TRIGGER [test1] ON dbo.UserData
AFTER INSERT
AS
DECLARE @USbm nvarchar
DECLARE @USname nvarchar
DECLARE @FAid int
DECLARE @usid int
IF @@ROWCOUNT >0
BEGIN
SELECT @USname=USname,@USbm=USbm,@USid=USid FROM Inserted
select @FAid=Autoid from organize where Cname=@USbm
insert into Organize(Cname,FatherId,USid)values(@USname,@FAid,@USid)
end
select @FAid=Autoid from organize where Cname=@USbm
@FAid还是为空,不知怎么取得查寻记录的数据?
问题点数:20、回复次数:5Top
1 楼StarRains(星雨)回复于 2006-11-01 10:16:42 得分 5
Cname 字段类型是Nvarchar?
把@USbm print出来,看看是什么Top
2 楼xbbtzhao(agre)回复于 2006-11-01 14:54:21 得分 0
问题出来了,insert into UserData(USid,USname,USbm)values(10099,'哪个','人事部')
@USbm本为'人事部',为什么
SELECT @USname=USname,@USbm=USbm,@USid=USid FROM Inserted
@USbm只取得一个'人',为什么呢?Top
3 楼StarRains(星雨)回复于 2006-11-01 16:11:56 得分 10
nvarchar(n)类型的定义要指定长度,如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。 所以只会取到第一个字符。
修改@USbm 和@USname 为
DECLARE @USbm nvarchar(50)
DECLARE @USname nvarchar(50)
应该就可以了Top
4 楼liangpei2008(笑青天)回复于 2006-11-01 18:22:11 得分 5
没有符合条件的记录嘛!所以为空了!
按楼上的方法做一下!Top
5 楼xbbtzhao(agre)回复于 2006-11-02 08:05:00 得分 0
问题已解决:多谢
DECLARE @USbm nvarchar(50)
DECLARE @USname nvarchar(50)Top




