1、格式相似于html
CREATE PROCEDURE YourProcedure AS BEGIN SET NOCOUNT ON; BEGIN TRY---------------------开始捕捉异常 BEIN TRAN------------------开始事务 UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 AS B ON A.id = B.id UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 AS B ON A.TEST = B.TEST COMMIT TRAN -------提交事务 END TRY-----------结束捕捉异常 BEGIN CATCH------------有异常被捕获 IF @@TRANCOUNT > 0---------------判断有没有事务 BEGIN ROLLBACK TRAN----------回滚事务 END EXEC YourLogErrorProcedure-----------记录存储过程执行时的错误信息,自定义 END CATCH--------结束异常处理 END
2、捕获错误的经常使用函数sql
一、ERROR_NUMBER() 返回错误号。函数
二、ERROR_SEVERITY() 返回严重级别。spa
三、ERROR_STATE() 返回错误状态号。code
四、ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。htm
五、ERROR_LINE() 返回致使错误的行号。对象
六、ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。事务
参考资料:SQL SERVER存储过程当中如何使用事务与try catchget