【问题标题】:Is it possible to pass a parameter to trigger in SQL Server database?是否可以传递参数以在 SQL Server 数据库中触发?
【发布时间】:2016-10-10 00:32:52
【问题描述】:

表可以在插入/删除/更新时触发。触发器将由数据库引擎在内部触发。

是否可以像存储过程一样在 SQL Server 数据库中传递参数来触发?

【问题讨论】:

  • 这听起来很奇怪——你想解决什么问题?
  • 今天有人问我这个问题,但从未听说过 CONTEXT_INFO(),但他们过去曾使用过此功能,发现它很有帮助。

标签: sql sql-server-2008


【解决方案1】:

间接通过CONTEXT_INFO()。见Using Session Context Information。您的触发器需要额外状态这一事实始终是代码异味。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    你可以拼凑它。创建一个专门用于保存参数信息的表,然后在执行将启动触发器的操作之前将数据放入参数表中。对触发器进行编码以从参数表中读取。

    这是胡萝卜,这是大棒:

    1. 这会使您的触发器复杂化。您需要考虑丢失参数的可能性,并且必须对参数进行清理。
    2. 您正在使用此技术创建依赖项,因此它仅适用于编码为使用此参数传递技术的进程。因此,如果您的数据不仅被您的应用程序修改,那么这将不起作用。

    【讨论】:

      猜你喜欢
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 2015-10-01
      • 1970-01-01
      相关资源
      最近更新 更多