我试图了解TRY-CATCH的 确切含义不捕获在相同范围内发生的编译错误。
我目前正在尝试在SQL Server中设置异常处理,并且遇到了几次此语句,但是我不太了解它的含义。我注意到,如果我有INSERT语句,则异常处理适用于PRIMARY KEY约束错误,但不适用于包含额外列的INSERT语句。
它似乎不适用于包含额外列的INSERT语句。
正确,因为TRY-CATCH不会捕获在相同范围内发生的编译错误。
如果您的编译错误发生在嵌套范围内,则catch块将运行。
这是行为的一个简单示例:
create table t(id int)
go
begin try
insert into t(id) values (1,2)
end try
begin catch
select concat('catch block ', error_message())
end catch
go
begin try
exec ('insert into t(id) values (1,2)');
end try
begin catch
select concat('catch block ', error_message())
end catch
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句