看一下下面的触发器语句有没有错误啊,帮忙指点一下啊CREATE trigger trg_material
on Material
for delete
as
declare @PublisherID varchar(10),@AuthorID varchar(20)
select @PublisherID =PublisherID, @AuthorID=AuthorID from deleted delete from Publisher where PublisherID =@PublisherID
delete from Author where AuthorID =@AuthorID
on Material
for delete
as
declare @PublisherID varchar(10),@AuthorID varchar(20)
select @PublisherID =PublisherID, @AuthorID=AuthorID from deleted delete from Publisher where PublisherID =@PublisherID
delete from Author where AuthorID =@AuthorID
on Material
for delete
as
Delete A From Publisher A Inner Join Deleted B On A.PublisherID=B.PublisherID
Delete A From Author A Inner Join Deleted B On A.AuthorID=B.AuthorID
GO
加个BEGIN
-----------------------
可以不用加
用户执行一个sql语句导致多条记录被修改时,触发器中的deleted表或inserted表就会有对应的多条记录副本.例如:
批量删除时deleted表中会有很多记录的,而不是一个记录.
批量更新时deleted表和inserted表中也是有很多记录的.
要根据需要与deleted表或inserted表进行连接.
如果每一次 是一条记录的话lz的代码没有错误。 如果超过一条。
select @PublisherID =PublisherID, @AuthorID=AuthorID from deleted 得到的结果就不对拉。