我有一个trigger
,它处理一些数据以进行记录,例如:
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
进行读取,否则必须从context_info
的dbo.sysprocesses
列中获取。
关于sql-server - 将变量传递给触发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2646547/