Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 TRANSACTION в МSSQL 2008 процедуре  [new]
Alex Brown
Member [заблокирован]

Откуда:
Сообщений: 776
надо обрабатывать INSERT в таблицу с ТRANSACTION (пошагово через всю таблицу в курсоре )
с COMMIT нет проблем
Часть процедуры с INSERT выглядит так:

BEGIN TRANSACTION @TranName
INSERT INTO Tabelle (bpc_ID,ZahlFeld ,..............) VALUES(@Verarbeitungs_ID,@Zahlfeld ,...........)

IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION @TranName
SET @Verarbeitungsmeldung = ERROR_MESSAGE()
SET @Verarbeitungsstatus = ERROR_STATE()
.............
END
.....

COMMIT
.........

чтоб сгенериривать ошибку @@ERROR пробую например в переменной @Zahlfeld подставить вместо числа 'TEXT'. генерируется ошибка (не @@ERROR а ошибка сервера с Msg.), процедура прерывается.
не пойму почему не могу зайти в блок обработки с ROLLBACK.
не все ошибки обрабатываются в транзакции?
что то специальое надо сделать для insert?
Необходимы какие то "SET" в самом сервере для обработки транзакций?
9 май 11, 14:22    [10625543]     Ответить | Цитировать Сообщить модератору
 Re: TRANSACTION в МSSQL 2008 процедуре  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alex Brown
Необходимы какие то "SET" в самом сервере для обработки транзакций?

Транзакции тут непричем
Необходимо правильно перехватывать ошибки. С помощью конструкции TRY...CATCH
9 май 11, 14:55    [10625588]     Ответить | Цитировать Сообщить модератору
 Re: TRANSACTION в МSSQL 2008 процедуре  [new]
Alex Brown
Member [заблокирован]

Откуда:
Сообщений: 776
да.. оно и есть .. ну не знал... проглотил... переварил.... fertig
9 май 11, 17:43    [10625875]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить