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

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

我有一个触发器,它处理一些用于记录目的的数据,如下所示:

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/

相关文章:

php - 通过不可靠的网络连接在 MySQL 和 SQL Server 之间同步数据

c# - 使用 LIKE 关键字在 SQL 中搜索数据

sql-server - SQL Server 检查约束在正确输入时失败

mysql - 将变量设置为列名 mysql

javascript - 当我在 consol 中打印对象时明确定义时,Javascript 中的键未定义

javascript - 为什么我的变量根据它们是数组还是整数而有所不同?

sql-server - 在 MS SQL Server 2005 中使用 Rails 2.x

c# - 以编程方式生成sql代码

sql - 替换日期时间日期中的年份

.net - Entity Framework 模型是否可以传递 SQL 脚本以针对数据库运行