我们知道sql触发器是隐式调用的。 我只是想知道是否可以在sql server中显式调用触发器?
如果是,那么怎么样?
由于
答案 0 :(得分:2)
我认为这取决于你明确调用触发器的含义。
您可以触发触发器,而不会对基础表进行任何数据更改:
create table T (ID int not null)
go
create trigger T_T on T after insert
as
RAISERROR('Hello',10,1) WITH NOWAIT
go
insert into T(ID)
select 1 where 1=0
结果:
Hello
(0 row(s) affected)
话虽这么说,这有点像作弊,和@Mitch Wheat一样,我想知道你为什么试图这样做。如果“明确地调用触发器”是解决问题的一部分,那么a)这可能是错误的解决方案,并且b)如果我们知道问题是什么,我们可以建议更好的解决方案。