Когда ошибка останавливает выполнение в SQL Server?

Если я выполню этот пакет:

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'.

И останавливает выполнение пакета

В чем разница между ними? Где я могу узнать тех, кто останавливает казнь, и тех, кто этого не делает?

Большое спасибо !!

5
задан Pankaj 21 February 2012 в 09:20
поделиться