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/

相关文章:

sql-server - 存储总数或即时计算?

sql-server - 修复MDF文件

sql - 检查日期时间是否为当前日期

sql - 转换 yyyy-mm-dd hh :mm:ss to yyyy-mm-dd in sql

c++ - 将变量B和C的乘积归因于变量A

c# - 在 ASP.NET Core MVC 中使用 ORM 的正确方法?

asp.net - 负载平衡 ASP.NET 应用程序的最佳文件存储解决方案是什么?

sql-server - 无法在SQL查询中执行存储过程

javascript - 从数组中添加数字?

c - 我应该更好地使用全局变量吗?