zoukankan      html  css  js  c++  java
  • T-Sql(二)事务(Transaction)

      今天讲下T-Sql语法中事务的用法,事务在项目中一般用的很少,主要用于转账,或是一些多表操作,第一步完成不了滚回,不执行接下的步骤。要么都不完成要么都完成,这是事务的特征。

      语法很简单,示例代码如下:

     1 create database Transaction_9_30
     2 use Transaction_9_30
     3 drop table Zanghui
     4 create schema Jago 
     5 create table Jago.Zhanghui
     6 (
     7     ID int primary key,
     8     Balance int not null
     9 )
    10 insert into Jago.Zhanghui(ID,Balance) values(1,1000);
    11 insert into Jago.Zhanghui(ID,Balance) values(2,3000);
    12 update Jago.Zhanghui set Balance=1000 where ID=1;
    13 update Jago.Zhanghui set Balance=3000 where ID=2;
    14 select *from Jago.Zhanghui
    15 
    16 begin transaction t1;                    --例子:转帐操作;一个表(id,balance)                               
    17     declare @v bigint;                  --要求利用事务:
    18     set @v = 0;
    19     update Jago.Zhanghui set Balance=Balance-200 where ID=1;
    20     if not exists(select *from Jago.Zhanghui where ID=1)
    21         begin
    22             --raiserror('asdfsdf',16,-1)
    23             set @v = @v + 1;
    24         end    
    25     --set @v = @v + @@error;
    26     print @v;
    27     update Jago.Zhanghui set Balance=Balance+200 where ID=2;
    28     if not exists(select *from Jago.Zhanghui where ID=2)
    29         begin
    30             --update Jago.Zhanghui set Balance=Balance+200 where ID=1;    
    31             --raiserror('asdfsdf',16,-1)
    32             set @v = 1;
    33         end
    34     
    35     if(@v = 0)
    36         begin
    37             print @v
    38             commit tran t1;
    39         end
    40     else
    41         begin
    42             print @v
    43             rollback tran t1;
    44         end
    45 --commit transaction t1
    46         

     

  • 相关阅读:
    linux C 代码查看推荐 anjuta
    Fixes error: "Couldnt load module pthres" and similar.
    mfloatabi=name
    ubuntu 阅读chm 文件
    android 文件系统挂报错 switch_root: bad init /sbin/init: No such file or directory
    writel __raw_writel mb()/rmb()/wmb()
    企业创新里的阴和阳
    关于verilog testbench
    Git使用初步
    Latchup初认识
  • 原文地址:https://www.cnblogs.com/xishuai/p/3191712.html
Copyright © 2011-2022 走看看