2013-03-09 99 views
2

我已經創建了一個簡單的刪除觸發器被觸發但0行生效。父表記錄被刪除。但從記錄表中也應該刪除而不刪除。我有以下查詢。刪除觸發器不工作

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.' 

回答

3

你試過從deleted

select @studentId_Audit = d.studentID from deleted d; 

選擇記住deleted可以包含多個行,你只能選擇其中之一! (這是所有觸發記住insertedupdateddeleted

0

不要在觸發聲明變量,使用與源表中刪除的簡單連接,您就可以使用多個刪除

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.'