Как закрыть или откатить транзакцию?
От: Аноним  
Дата: 28.03.07 09:17
Оценка:
MS SQL Server 2000

Процедура вылетает по timeout (слишком долго отрабатывает тригер) и транзакция остается открытой. Какие последствия, думаю, известно.
У кого какие предложения, как побороть эту траблу?
Re: Как закрыть или откатить транзакцию?
От: sunsquirel США  
Дата: 28.03.07 09:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>MS SQL Server 2000


А>Процедура вылетает по timeout (слишком долго отрабатывает тригер) и транзакция остается открытой. Какие последствия, думаю, известно.

А>У кого какие предложения, как побороть эту траблу?

как насчет переписать триггер? я думаю такая производительность в любом случае никого не устроит!
а вообще надо внутри просто поставить проверку на открытую транзакцию: if (@@TRANCOUNT <>0) COMMIT TRANSACTION
Re[2]: Как закрыть или откатить транзакцию?
От: vpavel  
Дата: 28.03.07 09:38
Оценка:
Здравствуйте, sunsquirel, Вы писали:

S>как насчет переписать триггер? я думаю такая производительность в любом случае никого не устроит!

S>а вообще надо внутри просто поставить проверку на открытую транзакцию: if (@@TRANCOUNT <>0) COMMIT TRANSACTION

1) Где поставить условие?
2) Скорость отработки тригера не обязательно зависит от кода

ЗЫ Не зарегился в первый раз
Re[3]: Как закрыть или откатить транзакцию?
От: gavrilenko_s  
Дата: 29.03.07 08:33
Оценка:
C клиента при возниконовении таймаута, 207 и 208 ошибок (м.б. и других) — обязательно сказать rollback. Потому то коммитить непонятно что — себе дороже.
З.Ы. Чтобы не заморачиваться, я бы после любой ошибки говорил rollback. Это, конечно, при условии отсутствия транзакций с клиента.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.