我试图调用ON Delete
触发事件,但是当我尝试从Deleted
表中选择行时,它是空的。已删除SQL Server虚拟表为空ON删除触发
是否有任何其他方式获取删除事件触发的行ID?
代码:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER TRIGGER [audit]
ON [dbo].[S_PARTY]
FOR DELETE
AS
-- Insert statements for trigger here
DECLARE @id nvarchar(50)
SET @id = (Select ROW_ID from deleted)
BEGIN
-- Insert statements for trigger here
INSERT INTO [dbo].[S_AMF_AUDIT_ITEM] (ROW_ID)
VALUES (@id);
END
当此触发火灾,我得到错误的S_AMF_AUDIT_ITEM
不允许空值。那么你能帮我这个获得执行delete命令的表的Id吗?
工作! ..但我仍然不明白为什么SET @id =(从删除选择ROW_ID)不设置值。我确保一次只删除一行。并且Id从我尝试删除的位置存在于S_PARTY表中。 – rishman