sql-server - 将变量传递给触发器

标签 sql-server tsql variables triggers sql-server-2000

我有一个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_infodbo.sysprocesses列中获取。

关于sql-server - 将变量传递给触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2646547/

相关文章:

C++ 常量字符

mysql - 如何按两个 id 对 linq 查询进行分组

sql-server - 所见即所得字段的数据库设计

空 OR 匹配的 SQL 查询 Where 子句(仅返回 1)?

sql-server-2008 - 尝试删除默认值,但收到一条消息,提示它在服务器上不存在

powershell - PowerShell中的复杂变量字符串

sql-server - 如何在 SSRS 中将数据集或组显示为逗号分隔列表?

sql-server - 将约束移动到连接中是否比连接和 where 子句更有效?

sql - 倒选 TOP *

java - 避免初始化变量以使代码仍然有效