SQL Server 存储过程事务模板

CREATE TABLE [dbo].[test](
[aa] [nvarchar](10) NULL,
[bb] [nvarchar](3) NULL
)

 

IF OBJECTPROPERTY(OBJECT_ID(N'dbo.sp_test'), N'IsProcedure') = 1 DROP PROC dbo.sp_test
GO
CREATE PROC dbo.sp_test
AS
BEGIN
SET NOCOUNT ON;
Set XACT_ABORT ON;
begin try
begin tran
insert into [test]
select '1','225'


insert into [test]
select '1','2255555555'

 

update [test] set aa='222'

commit tran
end try
begin catch
--DECLARE @ErrorMessage NVARCHAR(4000);
-- DECLARE @ErrorSeverity INT;
-- DECLARE @ErrorState INT;
if xact_state()=-1
rollback tran;
-- SELECT
-- @ErrorMessage = ERROR_MESSAGE(),
-- @ErrorSeverity = ERROR_SEVERITY(),
-- @ErrorState = ERROR_STATE();

--RAISERROR (@ErrorMessage, -- Message text.
-- @ErrorSeverity, -- Severity.
-- @ErrorState -- State.
-- );

;THROW
end catch

SET NOCOUNT off;
END

exec sp_test

select * from [test]
truncate table [test]

转载于:https://www.cnblogs.com/fanxin2015/p/10755506.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值