我将数据批量加载到MS SQL中。为了有效地这样做,我暂时禁用了一个表上的FK约束(一个表8约束所有这些都有级联删除“Set NULL”)。在重新启用约束检查之前,我需要检查无效的外键并将它们设置为NULL。
我将如何实现这一目标?感谢。
答案 0 :(得分: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