SQL Server DDL触发器未触发

时间:2019-04-03 19:09:46

标签: sql-server

我正在尝试在tempdb中的CREATE_TABLE上创建DDL触发器(是的,我知道服务器重新启动后会被清除),

use tempdb;
go

create trigger tt1
on database
for create_table
as
    begin
    print 'TRIGGER FIRED';
    raiserror('TEST ERROR', 16, 1);
    rollback;
    end
go

use master;
go

create table #ttt (f1 nvarchar(25));
select * from #ttt;
drop table #ttt;

...但是触发器似乎没有触发。

任何人都可以解释我需要做些什么才能使它正常工作吗?

谢谢。

1 个答案:

答案 0 :(得分:4)

您将无法使用它

  

仅在触发DDL语句的DDL语句   跑。 DDL触发器不能用作INSTEAD OF触发器。 DDL触发器   不要针对影响本地或全球的事件而触发   临时表和存储过程。

Source