Jim*_*ard 1 sql-server triggers sql-server-2005
我在SQL Server中有一个名为hl7_lock的表,其中包含以下列:
hl7_id lock_dtm lock_user
我在表上有3个触发器用于UPDATE,INSERT和DELETE
该表永远不会更新,但INSERT触发器工作正常.但是,这个删除触发器偶尔会在hl7_lock_log中创建一个空值为hl7_id的记录
SET NOCOUNT ON;
declare @hl7_id decimal(18,0)
select @hl7_id = hl7_id from deleted
insert into hl7_lock_log (user_name, action, hl7_id, dtm)
values(system_user, 'Delete', @hl7_id,getdate())
Run Code Online (Sandbox Code Playgroud)
其他字段已成功插入,但hl7_id为null.已删除的记录没有空的hl7_id.
我们在周末安装了SQL Server SP 2,但这并没有改善这种情况.有没有人在SQL Server触发器中看到此行为.关于如何修复触发器的任何建议?
如果只删除一条记录,或删除多条记录,是否会发生这种情况?如果删除多个记录,则触发器将失败.
你应该做更像这样的事情:
插入hl7_lock_log(user_name,action,hl7_id,dtm)从删除中选择system_user,'Delete',hl7_id,getdate()