2012-02-09 32 views
1

我将数据批量加载到MS SQL中。为了有效地做到这一点,我暂时禁用表上的FK约束(一个表8约束,所有这些约束都具有级联删除“Set NULL”)。在我重新启用约束检查之前,我需要检查无效的外键并将它们设置为NULL。批量加载后删除无效的FK数据

我该如何去实现这个目标?谢谢。

回答

3
UPDATE MyMainTable 
SET TableAID = CASE WHEN TableA.ID IS NULL THEN NULL ELSE TableAID END, 
    TableBID = CASE WHEN TableB.ID IS NULL THEN NULL ELSE TableBID END, 
FROM MyMainTable 
    LEFT JOIN TableA ON MyMainTable.TableAID = TableA.ID 
    LEFT JOIN TableB ON MyMainTable.TableBID = TableB.ID 
+0

工程精彩,感谢一百万。 – Daniel 2012-02-09 19:01:53