2012-12-27 37 views
2

我想知道有什麼方法可以知道記錄是否與其他記錄一起使用。如何檢測實體是否在SQL Server 2008中使用?

除捕獲參照完整性異常外,還有什麼方法可以找到它嗎?

我通常會發現這個異常,並告訴用戶沒有刪除或無法刪除記錄。

+0

您使用哪種技術/框架進行CRUD操作?你的應用程序對系統表有什麼類型的訪問? –

+0

@Studiooverflow.com/questions/129329/optimistic-vs-pessimistic-locking –

+0

@MichaelPerrenoud:Linq2Sql –

回答

1

您可以針對相關表運行查詢。

+0

如果我的記錄已被分散到10-15個表中。我不想把它寫在每張桌子上。我想要一些通用的方法來識別 –

+0

如果記錄是從其他表格引用的,則可以添加一個新列以存儲預先計算的值。更新引用時,可以更新此列的值,因此不必在每次讀取時都運行大量查詢。 –

+0

你的意思是說添加一個像IsInUse的列來跟蹤它的使用情況。但是它的回溯又出現了問題。在這種情況下,在evey刪除被引用表中的記錄時,我必須對該刪除記錄中的每條記錄進行回溯,這又是一次矯枉過正。 –

0

創建一個存儲過程,使用系統表中的FK爲每個表構建自定義視圖。在每個視圖中,查詢所有相關的表。每次添加或刪除FK時運行SP,以便適當地更新所有視圖。

問題解決。

相關問題