原创

[MSSQL]SQL事务处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://david.blog.csdn.net/article/details/93167842
  • 通常我们在数据处理中,必须保证数据完整性,一致性。
    (1)批量处理数据,由于数据格式不正确,可能导致数据处理不完整。
    (2)多表数据处理:单头单身批量写入。
    (3)银行转账,转账金额大于存款余额
    (4)违法数据约束,如最高工资等 在编写T-SQL时候,需要用到事务控制。
/****** Object:  StoredProcedure [dbo].[Proc_Test_commit1]    Script Date: 2019/6/21 9:50:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Proc_Test_Commit] 
      @Name CHAR(10),
      @Salary INT,
      @result int output, --成功 1; 失败 0
      @message nvarchar(20) output
  AS
  BEGIN
      SET NOCOUNT ON
 
 declare @Test_Commit table(Name CHAR(10),Salary INT CHECK (Salary<5000)) --定义表变量,为测试方便增加Salary字段约束小于5000
  begin try 
        begin tran T_ImportData    --事务开始
         insert into @Test_Commit (Name,Salary) values (@Name,@Salary)
       set @result=1
       commit tran T_ImportData    --事务提交        
   end try   
 begin catch
         set @message= ERROR_MESSAGE() 
         set @result=0
         rollback tran T_ImportData    --由于出错,这里回滚到开始    
         print ERROR_MESSAGE()
 end catch 
    
     SET NOCOUNT OFF;  
     
 END

测试:
在这里插入图片描述

文章最后发布于: 2019-06-21 10:33:22
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie

分享到微信朋友圈

×

扫一扫,手机浏览