在從表中刪除行之前,是否有任何簡單的方法檢查它是否會違反參照完整性規則?我想從C#贏表單應用程序做到這一點(.NET 3.5)使用SQL Server 2005在刪除之前檢查參照完整性規則違規
3
A
回答
1
有浮現在腦海中的幾個可能的選擇:
- 設置級聯在數據庫中刪除,以便刪除將始終成功。
- 刪除前使用SELECT檢查相關記錄。這要求應用程序知道約束條件。
- 一個好的域模型(業務類)應該允許應用程序知道相關記錄。
- 一個O/R映射器,比如NHibernate,可以用來定義級聯刪除操作。
- 使用SMO(Microsoft.SqlServer.Smo)檢查數據庫模式的關係,然後檢查現有的相關記錄。我不知道這是否可能。
1
你可能會做一個事務中的刪除:
try
{
begin transaction
delete row
}
catch SQLException
{
if SQL error indicates referential integrity violation
throw ReferentialIntegrityViolationException
}
finally
{
rollback transaction
}
(假設你永遠都不想刪除發生在你的代碼這一點)
+0
我認爲這個想法是確定一個規則是否被違反,而沒有實際執行刪除的性能成本。此解決方案具有所有性能問題並且沒有任何好處;) – 2009-06-06 18:30:59
相關問題
- 1. 在刪除記錄之前檢查規則違規
- 2. 檢查完整性約束違反SQL之前刪除
- 3. 完整性約束違規
- 4. 發生了參照完整性約束違規。當更新EF
- 5. 錯誤「發生了參照完整性約束違規」
- 6. 參照完整性約束違規發生mvc4
- 7. 完整性違反違規:Magento
- 8. 在ASP .NET中刪除之前檢查引用完整性違例MVC
- 9. 如何處理刪除完整性約束違規?
- 10. 附加刪除時的完整性約束違規
- 11. MS ACCESS完整性約束違規:NOT NULL檢查約束;
- 12. 在刪除行之前,有沒有辦法在MySql中檢查約束違規?
- 13. 外鍵完整性約束違規:1452
- 14. PDOException完整性約束違規
- 15. SQLSTATE [23000]:完整性約束違規:1217
- 16. 完整性約束違規 - 無MySQL
- 17. 如何確定其是否存在參照完整性違規異常
- 18. 刪除與參照完整性約束
- 19. 實體框架:多對多關係中的參照完整性約束違規
- 20. htaccess規則刪除參數
- 21. 在ManyToMany關係中刪除對象時的完整性約束違規
- 22. CQRS/DDD:檢查參照完整性
- 23. 在堅持實體之前檢查約束違規
- 24. 刪除規則
- 25. Laravel - 完整性違反違規:1062重複輸入
- 26. 如何檢查我的提交新的R#規則違規?
- 27. 參照完整性
- 28. 參照完整性
- 29. 完整性約束違規在Laravel播種數據庫時5
- 30. 從「添加或刪除規則集」中刪除規則集
我不知道有任何這樣的技術,但如果有這樣的技術存在,我想你用來訪問數據庫的特定技術將是一個非常基本的信息。 – 2009-06-06 18:23:21