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

Откуда:
Сообщений: 1197
привет.
есть вот такой батч
почему я получаю
автор
Msg 3902, Level 16, State 1, Line 20
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.


т.е. почему попадаю в ветку IF @@TRANCOUNT > 0 ?
я же делаю комит

begin tran 
	declare @d decimal
	declare @d1 decimal
	set  @d1 = @d / 0

	declare @t table(name char)
	insert @t select null
	insert @t select 2
	insert @t select null
	insert @t select 4
	insert @t select null
commit tran
IF @@TRANCOUNT > 0	
	begin 	 
		COMMIT TRAN
		select '1'
	end
else 	
    begin 	 
		COMMIT TRAN
		select '12'
	end
18 окт 12, 12:48    [13339798]     Ответить | Цитировать Сообщить модератору
 Re: IF @@TRANCOUNT > 0  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
begin tran -- где то до был еще один
begin tran 

commit tran
IF @@TRANCOUNT > 0	
	begin 	 
		COMMIT TRAN
		select '1'
	end
else 	
    begin 	 
		COMMIT TRAN
		select '12'
	end
18 окт 12, 12:51    [13339812]     Ответить | Цитировать Сообщить модератору
 Re: IF @@TRANCOUNT > 0  [new]
Glory
Member

Откуда:
Сообщений: 104751
relief
т.е. почему попадаю в ветку IF @@TRANCOUNT > 0 ?
я же делаю комит

у вас и в else тоже COMMIT TRAN. Как раз на Line 20

Сообщение было отредактировано: 18 окт 12, 12:52
18 окт 12, 12:51    [13339817]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить