积极答复者
触发器更新时,只有一条记录被更新,用错了机制?

问题
-
这个表是有一个父子关系节点的表,我希望在父节点变化时,子节点对应的父节点值一起变化,我写了一个触发器,但是批量操作时,只能更新一条记录,单条执行时没有问题,批量就不行
ALTER TRIGGER [dbo].[up_tbs] ON [dbo].[tbs]
FOR UPDATE
AS
BEGIN
DECLARE @oldid INT,@newid INT
SELECT @oldid=ids FROM DELETED
SELECT @newid=ids FROM INSERTED
INSERT INTO tce(n,o,times) SELECT @newid,@oldid,GETDATE()--跟踪语句
IF @oldid<>@newid
begin
UPDATE tbs SET parentid=@newid WHERE parentid=@oldid--把父节点更新为最新
END
END
答案
-
SQL Server 没有行级触发器, 你可以在触发器中用游标来处理 inserted 中涉及的每条记录
- 已标记为答案 fangyanqin 2013年4月1日 7:05
全部回复
-
SQL Server 没有行级触发器, 你可以在触发器中用游标来处理 inserted 中涉及的每条记录
- 已标记为答案 fangyanqin 2013年4月1日 7:05
-