Мне было интересно, каково мнение каждого в отношении предварительной проверки поиска внешнего ключа перед INSERTS и UPDATES вместо того, чтобы позволить базе данных справиться с этим.Как вы знаете, сервер будет выдавать исключение, если соответствующая строка не существует.
В .NET мы всегда стараемся избегать кодирования исключений в том смысле, что не используются повышенные исключения для управления потоком кода.Это означает, что мы пытаемся обнаружить потенциальные ошибки раньше времени выполнения.
В SQL я вижу две противоположные точки
1) Независимо от того, проверяете вы базу данных или нет, всегда будет.Это означает, что вы могли бы тратить (насколько это субъективно) циклы ЦП на выполнение одной и той же проверки дважды.Это заставляет склоняться к тому, чтобы позволить базе данных делать это только.
2) Предварительная проверка позволяет разработчику вызывать более информативные исключения в вызывающем приложении.Вместо того, чтобы получать общее «нарушение внешнего ключа», можно возвращать разные коды ошибок для каждой проверки, которую необходимо выполнить.
Что вы думаете?