Я пишу хранимую процедуру, в которой я использую блок try catch.
Теперь у меня есть уникальный столбец в таблице. Когда я пытаюсь вставить повторяющееся значение, оно выдает исключение за исключением 2627.
Я хочу, чтобы это было сделано так
if (существует (выберите * из tblABC, где col1 = 'value') = true)
riseError (2627) - вызвать системную ошибку, которая возникла бы, если бы я использовал запрос вставки для вставки дублирующегося значения
EDIT:
Я использую транзакцию, которая получает откат при обработке исключения, что приводит к увеличению значения @@ Identity, которое было выполнено в предыдущих запросах b4 Возникла исключительная ситуация.
Я хочу проверить все такие исключения, которые могут возникнуть при вставке b4. Для этого я проверю исключение, которое может вызвать ошибку вручную, используя оператор select с if else
. Здесь я смогу отследить нарушение уникального ключа, но исключение не произойдет, поэтому я буду генерировать исключение намеренно, но это исключение, которое я хочу, должно быть системным исключением, т.е. ошибка 2627
И какой метод будет лучше, используя
вставить запрос или проверка на дубликат
значение перед вставкой с помощью Select
запрос?
ВОЗМОЖНО ЛИ КАК ПОДНЯТЬ СИСТЕМУ
ИСКЛЮЧЕНИЕ ПО ЛОСКУ ИСКЛЮЧЕНИЕ
ВРУЧНУЮ, т. Е. Бросая то же самое исключение, что SQL вылетел бы