如何在SQL Server中为ALTER TABLE事件创建触发器[关闭]

问题描述 投票:0回答:2

我使用SQL Server,我需要在创建或删除每个表后调用Triger

我想在创建或删除表后执行代码

我有一个表TableShemaChanges,我想保留表的更改。

我该怎么做?

感谢您的帮助。

sql sql-server
2个回答
1
投票

如陈述的here

SQL Server DDL触发器响应服务器或数据库事件而不是对表数据进行修改。这些事件由通常以下列其中之一开头的Transact-SQL语句关键字CREATEALTERDROPGRANTDENYREVOKEUPDATE STATISTICS

例如,您可以编写DDL触发器以在用户发出命令时进行记录CREATE TABLE或ALTER TABLE语句。

DDL触发器在以下情况下很有用:

  • 记录数据库架构中的更改。
  • 防止对数据库架构进行某些特定更改。
  • 响应数据库架构中的更改。

以下显示了创建DDL触发器的语法:

CREATE TRIGGER trigger_name
ON { DATABASE |  ALL SERVER}
[WITH ddl_trigger_option]
FOR {event_type | event_group }
AS {sql_statement}

样本查询

CREATE TRIGGER safety   
ON DATABASE   
FOR DROP_TABLE, ALTER_TABLE   
AS   
   PRINT 'You must disable Trigger "safety" to drop or alter tables!'   
   ROLLBACK; 

-1
投票

您可以为表上的INSERT,DELETE,UPDATE事件设置触发器。

© www.soinside.com 2019 - 2024. All rights reserved.