powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / exception в storage procedure
3 сообщений из 3, страница 1 из 1
exception в storage procedure
    #32025070
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi All
Столкнулся со следущей проблемой надо словить exception в MS SQL
пишу storage procedure м во времени добавления или update хочу перехватывать исключения
а то если ошибка то сразу вылетаю в клиентский код(use JDBC)
В ORACLE есть обработка exception а как сделать это в MSSQL.
for example:
INSERT INTO PARTID (ID,CREATED,PRINCIPAL,CREDENTIALS)
VALUES (9,'01/01/2002','Hello','the second position')
выдает ошибку
Server: Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK_PARTID'. Cannot insert duplicate key in object 'PARTID'.
The statement has been terminated.

Как сделать так чтобы не вылетало исключение
В ORACLE это делается так:
e_normal_exit EXCEPTION;
BEGIN
INSERT INTO PARTID (ID,CREATED,PRINCIPAL,CREDENTIALS)
VALUES (9,'01/01/2002','Hello','the second position')
RAISE e_normal_exit;
EXCEPTION
WHEN e_normal_exit
THEN RETURN( TRUE );
WHEN OTHERS
THEN RETURN( FALSE );
...
Рейтинг: 0 / 0
exception в storage procedure
    #32025087
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После выплнения скрипта об ошибке можно узнать по значению системной переменной @@ERROR (если не 0 - то ошибка). Так же надо поставить SET XACT_ABORT OFF. Тогда скрипт даже после ошибки в INSERT продолжит выполнение и можно будет отработать ошибку:

SET XACT_ABORT FALSE

INSERT INTO PARTID (ID,CREATED,PRINCIPAL,CREDENTIALS)
VALUES (9,'01/01/2002','Hello','the second position')

IF @@ERROR <> 0
RETURN 1

RETURN 0
...
Рейтинг: 0 / 0
exception в storage procedure
    #32025113
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ
но это проблему не решает так как при вызове storage procedure из java с помощью JDBC
все равно подхватиться исключение и в результате выполнение прервется

в Oracle можно обработать исключение и после этого оно дальше не пойдет
а как это сделать в MSSQL
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / exception в storage procedure
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]