大容量加载后删除无效的FK数据



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

我将如何实现这个目标?谢谢

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

最新更新