所以我看到SQL有一些表,用于保存表中可能引用的新插入和删除的数据。我没有注意到有关更新数据的表格。我目前正在使用触发器,我需要将触发器应用于更新。我该怎么做?
USE [examene]
GO
/****** Object: Trigger [dbo].[trig1] Script Date: 6/8/2013 6:48:26 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[trig1] on [dbo].[participari]
after insert,update,delete
as
begin
if (exists (select * from deleted))
rollback
if (exists (select * from inserted,proiecte
where inserted.idpr = proiecte.idpr
and deadline<dela union
select * from inserted,proiecte
where inserted.idpr = proiecte.idpr and inserted.panala>proiecte.deadline))
rollback
end
到目前为止,这是我的触发器
答案 0 :(得分:1)
没有updated
虚拟表这样的东西。发生更新时,可能会在deleted
中找到旧值,并在inserted
<强> Use the inserted and deleted Tables 强>
删除的表存储DELETE期间受影响的行的副本 更新语句。在执行DELETE或UPDATE期间 语句,行从触发器表中删除并传输到 删除的表。通常删除的表和触发表 没有共同的行。 inserted表存储了。的副本 INSERT和 UPDATE 语句期间受影响的行。插入期间或 更新事务,新行添加到插入的表和 触发表。插入表中的行是。的副本 触发器表中的新行。
更新交易类似于删除操作,后跟一个 插入操作;先将旧行复制到已删除的表中, 然后将新行复制到触发器表和 插表。