0
如何在刪除行之前檢查行是否可刪除?這就像開發一個新的函數CanDelete(RowID)。SQL Server - 在刪除行之前如何檢查一行可刪除
我在另一個表中引用了這些表中的一些行。
我能做到的一種方法是捕捉異常。有沒有更好的方法?
如何在刪除行之前檢查行是否可刪除?這就像開發一個新的函數CanDelete(RowID)。SQL Server - 在刪除行之前如何檢查一行可刪除
我在另一個表中引用了這些表中的一些行。
我能做到的一種方法是捕捉異常。有沒有更好的方法?
假設你的要求是你不想刪除一行,它是從另一個表引用。
我不會離開這個到C#代碼。如果另一個應用程序的開發是通過刪除或某人直接訪問數據庫的話。
首先你應該建立一個關於delete rule的關係。其次,您可以在刪除之前編寫觸發器進行檢查,並在其中進行漢德爾。最後,你可以寫你刪除語句與不存在例如
DELETE from TableA where ID in (select ID from tableA a left outer join tableB b on a.ID = b.ID where b.ID is NULL)
從根本上說,你不能事先知道事務是否會成功。即使另一個表中沒有行引用給定的行,也可以添加另一行,在您檢查的時間與嘗試刪除的時間之間引用該行。話雖如此,您可以編寫一個查詢來計算另一個表中引用您想要刪除的行的行數,但這不是一個可靠的解決方案(並且可能比僅處理第一個地點)。 – Cameron 2014-10-17 00:28:27
將刪除寫爲存儲過程,或者使用邏輯刪除觸發器來刪除之前檢查外鍵。 – Crowcoder 2014-10-17 00:29:22