2016-04-13 49 views
0

如何爲MS SQL Server編寫this觸發器?從MySql刪除觸發器到Sql Server後翻譯

MySQL版本:

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons 
FOR EACH ROW 
BEGIN 
DELETE FROM patron_info 
    WHERE patron_info.pid = old.id; 
END 

SQL Server版本:

CREATE TRIGGER log_patron_delete ON patrons AFTER DELETE 
AS 
BEGIN 
DELETE FROM patron_info WHERE patron_info.pid = old.id; 
END 

問題:old.id作品MySQL,但是沒有MS SQL Server的

+2

如何刪除級聯? –

+0

我同意juergen d - 這不是觸發器的工作,它是外鍵約束的工作。 –

回答

1

這不是一個爲觸發器工作,這是一個外鍵約束的工作。 您應該在patrons表和patron_info表之間創建一個外鍵,並使用選項delete cascade創建它。

ALTER TABLE patron_info 
ADD CONSTRAINT FK_patron_info_patrons FOREIGN KEY (pid) 
    REFERENCES patrons(id) 
    ON DELETE CASCADE 

這樣,你不能有不相關的惠顧表patron_info任何行,一旦你刪除的惠顧表中patron_info相應的行被自動刪除的行。