Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отлавливание ошибок в хранимой процедуре / 5 сообщений из 5, страница 1 из 1
19.09.2001, 16:06
    #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
20.09.2001, 04:42
    #32014397
Osya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отлавливание ошибок в хранимой процедуре
:->
Сам поставил SET XACT_ABORT ON и еще спрашивает.
Ты же включил откат при любой ошибке.
...
Рейтинг: 0 / 0
20.09.2001, 09:39
    #32014440
Hermit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отлавливание ошибок в хранимой процедуре
Я думал над этим.
Но без SET XACT_ABORT ON вообще распределенные транзакции не работают.
Говорит что, якобы, Could not start a transaction for OLE DB provider 'MSDASQL'.
...
Рейтинг: 0 / 0
20.09.2001, 10:00
    #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
20.09.2001, 10:03
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Отлавливание ошибок в хранимой процедуре / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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