Если я выполню этот пакет:
begin transaction
PRINT 'start'
PRINT 1/0
PRINT 'continue'
drop table dbo.tblPrueba
select * from dbo.tblPrueba
PRINT 'finish'
rollback transaction
Результат будет следующим:
start
Msg 8134, Level 16, State 1, Line 3
Divide by zero error encountered.
continue
Msg 208, Level 16, State 1, Line 6
Invalid object name 'dbo.tblPrueba'.
Я вызываю две ошибки: - первый : PRINT 1/0 (который генерирует эту ошибку:
Msg 8134, Level 16, State 1, Line 3
Divide by zero error encountered.
) И продолжить выполнение пакета
- второй:
drop table dbo.tblPrueba
select * from dbo.tblPrueba
Это вызывает эту ошибку:
Msg 208, Level 16, State 1, Line 6
Invalid object name 'dbo.tblPrueba'.
И останавливает выполнение пакета
В чем разница между ними? Где я могу узнать тех, кто останавливает казнь, и тех, кто этого не делает?
Большое спасибо !!