我有一些表,我已经安装了触发器,如:
Booking
,BookingDetails
,Reservation
,ReservationDays
触发器接受插入和更新的值,并将它们插入另一个名为(TransTBL
)的表中的单独数据库中
当我的应用程序在这些表中插入(在一个按钮事件中)时,(Booking
,BookingDetails
和Reservation
)的触发器仅被触发,然后触发(BookingDetails
和{ {1}})被删除我不知道为什么?!
可能导致这种情况的原因是什么?
触发样本:
ReservationDays
答案 0 :(得分:0)
使用SSMS中的架构更改历史记录报告查看删除的时间和人员:右键单击SSMS中的数据库,报告/标准报告/架构更改历史记录。
答案 1 :(得分:0)
当有人忘记在触发器定义之后放置GO
并且脚本的下一部分做了某种下降时,我发现类似的事情发生了。像这样:
create table T (ID int not null)
go
create table V (ID int not null)
go
create table U (ID int not null)
go
if exists(select * from sys.objects where name='T_I')
begin
drop trigger T_I
end
go
create trigger T_I on T
instead of insert
as
insert into V (ID) select ID from inserted
--<-- No GO here!
if exists(select * from sys.objects where name='U_I')
begin
drop trigger U_I
end
go
create trigger U_I on U
instead of insert
as
insert into V (ID) select ID from inserted
现在使用第一个触发器:
select * from sys.triggers
go
insert into T(ID) values (1),(2)
go
select * from sys.triggers
结果:
T_I
U_I
然后
T_I