【问题标题】:SQL Server - trigger AFTER INSERT table in schemaSQL Server - 在架构中触发 AFTER INSERT 表
【发布时间】:2017-12-18 12:16:55
【问题描述】:

我有一个存储过程要在一组表(全部属于同一架构 [DATA_Countries])被删除然后重新插入后运行。

该操作由另一个应用程序执行,该应用程序删除并重新创建目标表,我无法控制。

由于每次都会删除并重新创建表,因此我无法在每个目标表上使用触发器。

有没有办法在每次将表插入特定模式时获取触发器,以返回此类表的名称并启动参数化存储过程?

谢谢!

【问题讨论】:

  • 您可以创建数据库触发器,是的,它可以在 DDL 更改时触发。触发器将启动 CREATE TRIGGER [YourTriggername] ON DATABASE FOR CREATE_TABLE AS...。看看CREATE TRIGGER (Transact-SQL)。
  • 谢谢。已经创建了一个 AFTER 数据库触发器并且它可以工作。关于如何访问正在插入的表的名称/模式的任何想法?

标签: sql-server triggers database-trigger


【解决方案1】:

是的,您可以在 SQL Server 上创建 DDL 触发器来跟踪 DDL 更改。例如,如果我想在我的数据库 AdventureWorks 上跟踪存储过程中的更改,我可以创建这样的触发器

CREATE TRIGGER td_ProcTrack 
ON AdventureWorks
FOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE
AS
BEGIN

<my code>

END

更多详细示例请参考Article

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 2010-09-29
    相关资源
    最近更新 更多