【问题标题】:Is it possible to create a trigger that creates another trigger是否可以创建一个触发器来创建另一个触发器
【发布时间】:2013-12-03 14:17:52
【问题描述】:

是否可以有一个触发器来创建另一个触发器?

例如,我有 table_1 的列 table_name。在插入table_1 时,第一个触发器将为插入为table_name 的表创建一个触发器?我没有找到太多这方面的信息。

【问题讨论】:

  • 你试过什么?为新触发器构建 TSQL 并使用sp_executesql创建它?
  • 这有一种非常难闻的气味......我不会设计这样的系统。表及其触发器应由适当的 DDL 脚本处理并由您控制 - 您不应在插入时动态创建表(和触发器).....

标签: sql sql-server triggers sql-insert datatrigger


【解决方案1】:

触发器使您能够运行动态 SQL,您可以在其中创建您喜欢的对象,包括其他触发器(假设您具有正确的权限)。

您可以通过使用sp_executesql 来做到这一点,它执行一个可以多次重复使用的 Transact-SQL 语句或批处理,或者一个已动态构建的语句。 Transact-SQL 语句或批处理可以包含嵌入式参数

这似乎是一个(非常)糟糕的设计。所以继续尝试(或不尝试*)。

*您可以先说明您的问题,可以在programmers(如果它更多是面向设计的问题)或Database Administrators,您可能会得到更好的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多