语法: begin try
...
end try
begin catch
...
end catch
简单示例:
begin try begin try exec sp_executesql N'select * from tables' end try begin catch print'execute sql error' end catch insertinto Region(RegionID, RegionDescription) values (1, 'xxx') --select 1/0 end try begin catch select error_number() as errornumber, error_severity() as errorseverity, error_state() as errorstate, error_procedure() as errorprocedure, error_line() as errorline, error_message() as errormessage; end catch
注意error相关的函数要放在catch的第一行使用.
在catch中可以使用raiserror函数,将错误通知调用的应用程序,如ADO.NET
begin try exec sp_executesql N'select * from tables' end try begin catch print'execute sql error' raiserror130001'error message return to caller application' end catch