[MSSQL]SQL事务处理

  • 通常我们在数据处理中,必须保证数据完整性,一致性。
    (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

测试:
[MSSQL]SQL事务处理_第1张图片

你可能感兴趣的:(数据库管理(ORC/SQL))