我有一个触发器
,它处理一些用于记录目的的数据,如下所示:
CREATE TRIGGER trgDataUpdated
ON tblData FOR UPDATE
AS
BEGIN
INSERT INTO tblLog ( ParentID, OldValue, NewValue, UserID )
SELECT deleted.ParentID, deleted.Value, inserted.Value,
@intUserID -- how can I pass this in?
FROM inserted INNER JOIN deleted ON inserted.ID = deleted.ID
END
如何将变量 @intUserID
传递到上面的触发器中,如以下代码所示:
DECLARE @intUserID int
SET @intUserID = 10
UPDATE tblData
SET Value = @x
PS:我知道我无法将 @intUserID
传递给触发器,它只是用于说明目的。
最佳答案
我使用SET CONTEXT_INFO
对于这样的行动。这是一个 2008 年以上的链接,prior link已退休。
在 SQL Server 2005+ 上,您将拥有 CONTEXT_INFO
阅读它,但否则您必须从 dbo.sysprocesses
中的 context_info
列获取。
关于sql-server - 将变量传递给触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2646547/