2011-09-07 310 views
0

我有一個相當簡單的問題。 我需要創建刪除觸發器。刪除觸發器SQL 2005

我有三個表,Main和T1和T2。 T1和T2連接到Main,使用相同的ID字段,所以我已經有插入式觸發器,但效果很好,但我需要刪除觸發器,它將從主表中刪除T1和T2時刪除記錄。

任何幫助?

+0

你有沒有考慮一個帶有「ON DELETE CASCADE」的外鍵? –

+0

是的,我刪除了強制執行外部關鍵控制點,並刪除了檢查現有數據。 – Tony

+0

@Tony:爲什麼要刪除「檢查現有數據」?這與CASCADE DELETE – gbn

回答

0

刪除觸發器將在DELETE運行後觸發。但是,DELETE將因外鍵錯誤而失敗(您有FK,對嗎?)。

選項:

  • 存儲過程刪除T2,T1然後主要在事務
  • 設置FKS具有cascading delete
  • 相反觸發(之前刪除該觸發),這是有效地等一個存儲過程
+0

嗨我嘗試了級聯功能,但它不會允許它,因爲它是來自兩個表的相同ID,它不是唯一的 – Tony

+0

託尼:不明白你的意思:如果父行不是唯一的,你怎麼知道哪一行刪除? – gbn

+0

所有三個表都有相同的ID,這就是爲什麼我無法使用級聯,連接:主要到T1和主要到T2,同一個字段 – Tony