我有一个触发器处理一些数据用于记录目的,如下所示:
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这种行动.
在sql Server 2005上,您将要读取CONTEXT_INFO,否则您必须从dbo.sysprocesses中的context_info列中获取
(我误解了你的最后一个问题:-)