我使用SQL Server,我需要在创建或删除每个表后调用Triger
。
我想在创建或删除表后执行代码
我有一个表TableShemaChanges
,我想保留表的更改。
我该怎么做?
感谢您的帮助。
如陈述的here
SQL Server DDL触发器响应服务器或数据库事件而不是对表数据进行修改。这些事件由通常以下列其中之一开头的Transact-SQL语句关键字
CREATE
,ALTER
,DROP
,GRANT
,DENY
,REVOKE
或UPDATE 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;
您可以为表上的INSERT,DELETE,UPDATE事件设置触发器。