我用 try ... catch 处理如下语句,发现下面这个错误不会触发begin try
select * from tb1
end try
begin catch
print Error_Message()
end catch上面语句中的错误是 tb1 这个表不存在
如果类似于这样子的错误不能捕捉的话,那大部分错误都是捕捉不到的,比如,我使用了临时表,而使用时,临时表中的字段如果不存在的话,编译时,sqlserver是不会提示错误的,只有运行时才能发现。
select * from tb1
end try
begin catch
print Error_Message()
end catch上面语句中的错误是 tb1 这个表不存在
如果类似于这样子的错误不能捕捉的话,那大部分错误都是捕捉不到的,比如,我使用了临时表,而使用时,临时表中的字段如果不存在的话,编译时,sqlserver是不会提示错误的,只有运行时才能发现。
试试下面的语句!begin try
EXEC( 'select * from tb1' )
end try
begin catch
print Error_Message()
end catch