powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отлавливание ошибок в хранимой процедуре
5 сообщений из 5, страница 1 из 1
Отлавливание ошибок в хранимой процедуре
    #32014389
HERMIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Измучился я...
Не получается отлавливать ошибки в хранимой процедуре.
Если встречается ошибка типа integrity constraints транзакция откатывается сама, и не получается даже получить @@ERROR - до него дело даже не доходит...

Посмотрите на кусочек кода

SET XACT_ABORT ON
SELECT @a=man from ManTable
BEGIN DISTRIBUTED TRANSACTION
UPDATE Man1 set aa=@a
SELECT @err1=@@ERROR
UPDATE server.somwhere.deepin.jungle ... -- Здесь ошибка то и порылась
SELECT @err2=@@ERROR -- а сюда мы даже не попали...
IF (@@err1=0 AND @@err2=0)
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION -- а здесь охота кое что еще поделать, типа письмецо послать админу
...
Рейтинг: 0 / 0
Отлавливание ошибок в хранимой процедуре
    #32014397
Osya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:->
Сам поставил SET XACT_ABORT ON и еще спрашивает.
Ты же включил откат при любой ошибке.
...
Рейтинг: 0 / 0
Отлавливание ошибок в хранимой процедуре
    #32014440
Hermit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я думал над этим.
Но без SET XACT_ABORT ON вообще распределенные транзакции не работают.
Говорит что, якобы, Could not start a transaction for OLE DB provider 'MSDASQL'.
...
Рейтинг: 0 / 0
Отлавливание ошибок в хранимой процедуре
    #32014447
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"If SET XACT_ABORT is OFF, the linked server must also support nested transactions before update operations are allowed . Nested transactions are supported if the provider supports calling ITransactionLocal::StartTransaction when there is already an existing transaction for the session. This allows SQL Server to roll back individual statements in distributed queries without rolling back the entire transaction."

>Говорит что, якобы, Could not start a transaction for OLE DB provider 'MSDASQL'.
А SQLOLEDB провайдером то же самое ?
...
Рейтинг: 0 / 0
Отлавливание ошибок в хранимой процедуре
    #32014448
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сам нашел

"Transaction Considerations With Linked SQL Servers
The Microsoft OLE DB Provider for SQL Server does not support nested transactions. Therefore, XACT_ABORT should be set to ON for data modification operations inside implicit or explicit transactions and for data modification operations against distributed partitioned views.

Loopback connections to the same instance of SQL Server are not supported when inside an implicit or explicit transaction or distributed partitioned view."

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


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