我揹負着一個ERP數據庫,它缺少任何外鍵,因此缺乏參照完整性。查找SQL Server 2000中的孤立記錄
我正在寫一個腳本來檢查我們數據庫中大部分關於ophaned記錄的主要表格。
例如,在這種情況下,我正在使用我們的銷售表。
SLCDPM - Customer Master Table
SOMAST - Sales Order Master
SOITEM - Sales Order Items
SORELS - Sales Order Releases
基本上,這些(和一大堆其他表),我需要檢查,看看是否有沒有出現在它上面的任何表SORELS記錄。然後採取SOITEM並檢查它上面。等
我開始寫腳本,但行數有點荒謬。這就是我從這4張桌子開始的地方。
select 'Sales Order Master',* from somast where fcustno not in (select fcustno from slcdpm where ftype <> 'P')
SELECT 'Sales Order Item',* FROM soitem WHERE fsono NOT IN (SELECT fsono FROM somast)
select 'Sales Order Release',* from sorels where (fsono+finumber) not in (select (fsono+finumber) from SOITEM)
我停下來的原因是,我只是意識到SORELS(下表)只檢查表前,不是所有的表之前。
任何人都知道一個腳本,我可以使用這個更自動化或更好的方式來做到這一點?