Sql server 删除触发器不工作
我已经创建了一个简单的delete触发器,它被触发,但是影响了0行。已删除父表记录。但是记录中的表也应该删除,而不是删除。我有以下疑问Sql server 删除触发器不工作,sql-server,tsql,triggers,Sql Server,Tsql,Triggers,我已经创建了一个简单的delete触发器,它被触发,但是影响了0行。已删除父表记录。但是记录中的表也应该删除,而不是删除。我有以下疑问 ALTER trigger [dbo].[studentAuditActionDelete] on [dbo].[tblStudent] after delete AS declare @studentId_Audit int; select @studentId_Audit = i.studentID from inserted i;
ALTER trigger [dbo].[studentAuditActionDelete] on [dbo].[tblStudent]
after delete
AS
declare @studentId_Audit int;
select @studentId_Audit = i.studentID from inserted i;
delete from studentAudit
where
studentId_Audit = @studentId_Audit
PRINT 'AFTER Delete trigger fired.'
您是否尝试过从已删除的列表中进行选择
请记住,删除的行可以包含多行,您只能选择其中一行!也就是说,所有触发器都要记住插入、更新和删除的触发器您是否尝试过从已删除的触发器中进行选择
请记住,删除的行可以包含多行,您只能选择其中一行!也就是说,所有触发器都要记住插入的、更新的和删除的不要在触发器中声明变量,在删除源表的情况下使用简单联接,您将能够使用多次删除
CREATE TRIGGER [dbo].[studentAuditActionDelete] on [dbo].[tblStudent]
FOR DELETE
AS
DELETE a
FROM studentAudit a JOIN deleted d ON a.studentId_Audit = d.studentID
PRINT 'AFTER Delete trigger fired.'
不要在触发器中声明变量,在删除源表的情况下使用简单联接,这样就可以使用多次删除
CREATE TRIGGER [dbo].[studentAuditActionDelete] on [dbo].[tblStudent]
FOR DELETE
AS
DELETE a
FROM studentAudit a JOIN deleted d ON a.studentId_Audit = d.studentID
PRINT 'AFTER Delete trigger fired.'