Я работаю над веб-приложением, в котором много таблиц, но для иллюстрации моей проблемы достаточно двух:
- Пользователь
- Заказать
Допустим, у таблицы User есть первичный ключ "UserID", который является внешним ключом в таблице Order под названием "CreatedBy_UserID".
Прежде чем удалять пользователя, я хотел бы проверить, есть ли в таблице Order запись, созданная пользователем, который скоро будет удален.
Я знаю, что SqlException возникает, если я пытаюсь удалить пользователя, но допустим, что я хочу заранее проверить, что в таблице Order нет записей, созданных этим пользователем? Есть ли какой-нибудь код SQL, который я мог бы запустить, который проверит все внешние ключи таблицы, если на эту строку ссылаются?
Для меня это, как правило, полезный код, поскольку я мог бы вообще удалить опцию удаления, если можно обнаружить, что пользователь существует в этих других таблицах.
Мне не нужен простой запрос (SELECT COUNT(*) FROM Order WHERE CreatedBy_UserID == @userID
), потому что он не будет работать, если я создам другой внешний ключ для таблицы Order. Вместо этого я хочу что-то, что будет проходить через все внешние ключи.
Можно ли это сделать?