Удалить неверные данные FK после массовой загрузки - PullRequest
1 голос
/ 09 февраля 2012

Я загружаю данные в MS SQL. Чтобы сделать это эффективно, я временно отключаю ограничения FK для таблицы (одна таблица 8 ограничений, для всех из которых есть каскадное удаление «Set NULL»). Перед повторным включением проверки ограничений мне нужно проверить наличие недопустимых внешних ключей и установить для них значение NULL.

Как бы я пошел к достижению этой цели? Спасибо.

1 Ответ

3 голосов
/ 09 февраля 2012
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...