我在SQL SERVER 2000中的一个视图上里建立了Instead of Delete触发器,为什么...请看(65分)

  • 主题发起人 主题发起人 瑞雪
  • 开始时间 开始时间

瑞雪

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是本人学习SQL SERVER 2000时遇到的一个关于Instead of 触发器问题:

CREATE TRIGGER [dbo].[InstDel]ON aView
INSTEAD OF DELETE
AS
BEGIN
DELETE FROM Tab1 WHERE Tab1.ID IN(SELECT ID FROM DELETED)
END

这个触发器明明是个Instead of 触发器,(它所这个视图是个联接视图,这样做的目的
我想不用说了)但是我执行下面的SQL语句:
Delete from aView where ID=1时,它居然把联接中的另一个表中的相应记录也DELETE了,为什么,怎么办呢?
 
INSTEAD OF DELETE
这不是删除吗。
 
CREATE TRIGGER [dbo].[InstDel]ON aView
INSTEAD OF DELETE
AS
BEGIN
DELETE FROM Tab1 WHERE Tab1.ID IN(SELECT ID FROM DELETED)
END
这个替代触发器功能是当删除aview的记录时,转去删除tab1的记录,不删除aview的原table中的记录
如果是for delete就可以即删tab1又删aview的源table的记录了
 
后退
顶部