Sql-Server
除了 FK 禁用和 BULK 插入之外,是否還有其他不受信任的外鍵來源?
這個問題及其答案解釋了批量插入將如何呈現
FK
為不受信任,因為批量插入未完全檢查(僅PK
和UNIQUE
s)。我也知道暫時禁用 aFK
可能會導致不受信任的狀態。我目前的項目使用一個相當小的數據庫(< 3GB),典型的表數少於 200K 行。但是,完整性非常重要,所以我非常依賴
FK
約束(完整性比速度重要得多)。**問題:**是否有任何其他機制(除了 disable 和
BULK INSERT
)可以產生不受信任的外鍵?
另一個來源是
MERGE
允許忽略外鍵約束的錯誤。這是由 Paul White 報告的,以 Won’t Fix 的形式關閉,此後一直被忽略。這是我長期以來一直反對使用的主要原因之一MERGE
。還有其他可能的情況——我還沒有徹底檢查過這個關於檢查約束的情況,看看它是否也會影響 FK,而我沒有讀過的另一個是這個……
雖然她專注於性能方面,但我的同事 Melissa Connors 寫了一篇關於查找和修復不受信任的外鍵的精彩文章: