我使用Sql Server Bulkinsert將一大組數據從XML文件上傳到數據庫,通過在晚上默默運行的計劃作業。bulkinsert會導致殭屍記錄嗎?
背景
考慮這個假人模型:
+====================+ +====================+
+ INVOICE + + INVOICE LINES +
+====================+ +====================+
+ PK + InvoiceId +-I-┐ + PK + InvoiceLineId +
+ + ... + └IX-+ FK + InvoiceId +
+ + ... + + + ... +
+====================+ +====================+
我的源有望給我提供可靠的數據,但錯誤/錯誤時有發生。 Invoice Lines
中的InvoiceId
FK可能會指向表Invoice
中不存在的InvoiceId
。
我的問題
可以餵養錯誤引用數據Bulkinsert原因殭屍記錄?
插入它們會導致(可記錄)警告一旦約束再次打開?
如果是這樣,這些將是人類可檢測的。我可以創建一個上傳後清理。預先上傳支票將非常複雜,如上所述,這不是我的責任。
PS
要什麼我與殭屍記錄意味着額外的明確:
記錄存儲在數據庫中沒有存在的理由,因爲他們 有向相關性的參考,通過一個外鍵, 在另一個不存在的表中。
據我所知,這是一個普遍接受的術語。
什麼是殭屍記錄檢測壞行? – TheGameiswar
最簡單的事情就是使用NOT EXISTS運行審計報告來事先查找這些報告。重新啓用FK約束不會給你一個損壞的約束列表,但一個簡單的SELECT將會。你會用這些不良記錄做什麼?轉發給人檢查或刪除? –
回到約束時,約束將失敗。 – TheGameiswar