将变量传递给触发器 [英] Pass a variable into a trigger
本文介绍了将变量传递给触发器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个触发器
,它处理一些数据以进行记录,例如:
I have a trigger
which deals with some data for logging purposes like so:
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
传递给上述触发器,如以下代码所示:
How can I pass in the variable @intUserID
into the above trigger, as in the following code:
DECLARE @intUserID int
SET @intUserID = 10
UPDATE tblData
SET Value = @x
PS:我知道我无法将 @intUserID
传递给触发器,它
PS: I know I can't literally pass in @intUserID
to the trigger, it was just used for illustration purposes.
推荐答案
我使用 SET CONTEXT_INFO
行动。这是2008年以上的链接,先前链接已经退休。
在SQL Server 2005+上,您将 CONTEXT_INFO
才能阅读,否则必须从 context_info $ c获取
dbo.sysprocesses
中的$ c>列。
On SQL Server 2005+, you'd have CONTEXT_INFO
to read it but otherwise you have to get from context_info
column in dbo.sysprocesses
.
这篇关于将变量传递给触发器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文