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

Откуда: Київ
Сообщений: 10428
Есть процедура, в ней цикл, в нем

...
while 1=1
begin

begin tran
...

commit tran
end


Пускаю ее в SSMS, рабоатет долго, минут 15.
Если делаю Cancel посреди работы, то в окне запрос дает открытую транзакцию

select @@TRANCOUNT


Как сделать, чтобы в случае кансела делался роллбэк?
10 апр 13, 15:46    [14162625]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать Cancel процедуре?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Winnipuh
Как сделать, чтобы в случае кансела делался роллбэк?

Закрыть коннект
10 апр 13, 15:53    [14162681]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать Cancel процедуре?  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
KILL [spid окна]
10 апр 13, 17:43    [14163561]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать Cancel процедуре?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
Glory
Winnipuh
Как сделать, чтобы в случае кансела делался роллбэк?

Закрыть коннект
Или выполнить rollback
10 апр 13, 18:11    [14163724]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать Cancel процедуре?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
alexeyvg
Glory
пропущено...

Закрыть коннект
Или выполнить rollback


Руками то я делаю

select @@TRANCOUNT
if @@TRANCOUNT>0
	rollback tran;



хотелось бы без рук как-то
10 апр 13, 19:14    [14163955]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать Cancel процедуре?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
SET XACT_ABORT ON
?
10 апр 13, 19:17    [14163968]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить