SQL SERVER存储过程中使用事务
时间:2021-07-01 10:21:17
帮助过:4人阅读
PROCEDURE YourProcedure
AS
BEGIN
SET NOCOUNT
ON;
BEGIN TRY
---------------------开始捕捉异常
BEIN
TRAN------------------开始事务
UPDATE A
SET A.names
= B.names
FROM T1
AS A
INNER JOIN T2
AS B
ON A.id
= B.id
UPDATE A
SET A.names
= B.names
FROM T1
AS A
INNER JOIN T2
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
二、捕获错误的常用函数
1、ERROR_NUMBER() 返回错误号。
2、ERROR_SEVERITY() 返回严重级别。
3、ERROR_STATE() 返回错误状态号。
4、ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
5、ERROR_LINE() 返回导致错误的行号。
6、ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
SQL SERVER存储过程中使用事务
标签:异常处理 导致 name 触发器 server 回滚事务 set 自定义 mit