文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>sql 事务

sql 事务

时间:2011-06-08  来源:胡立基

create proc proc_takeMoney
@cardID1 varchar(20),   --汇款账号
@pwd int , --汇款密码
@takeMoney money, --汇款金额
@cardID2 varchar(20) --存款账号
as
set nocount on
declare @err int
set @err = 0
if exists(select 1 from cardInfo where cardID = @cardID1 and pass = @pwd)
begin
 begin tran --事物开始
 update cardInfo set balance = balance + @takeMoney where cardID = @cardID2 --接受款帐户加上@takeMoney
 set @err = @err + @@error
 update cardInfo set balance = balance - @takeMoney where cardID = @cardID1 --汇款帐户减去@takeMoney
 set @err = @err + @@error
 /*--交易信息表插入交易信息--*/
 insert into transInfo(transDate,cardId,transType,transMoney) values(default,@cardID1,'支取',@takeMoney)
 set @err = @err + @@error
 insert into transInfo(transDate,cardId,transType,transMoney) values(default,@cardID2,'存入',@takeMoney)
 set @err = @err + @@error
 /*--交易信息--*/
 select top 2 * from transInfo order by transDate desc
 if(@err<>0)
 begin
   rollback tran --错误回滚事物
 end
 else
 begin
  commit tran    --无错误提交事物
 end
end --if结束
else
 begin
  print '密码错误'
 end











CREATE PROC proc_AppFieldsManage
@CTRLIDFIELD VARCHAR(50),@DATATYPE VARCHAR(20),@ENCTRLIDLANGUAGE VARCHAR(10),@ENFIELDDESC VARCHAR(255),@ZHCNCTRLIDLANGUAGE VARCHAR(10),@ZHCNFIELDDESC VARCHAR(255),@ZHHKCTRLIDLANGUAGE VARCHAR(10),@ZHHKFIELDDESC VARCHAR(255)
AS
DECLARE @error int
  BEGIN TRANSACTION
 
      UPDATE App_FieldsDesc SET CtrlIDField=@CTRLIDFIELD,CtrlIDLanguage=@ENCTRLIDLANGUAGE,FieldDesc=@ENFIELDDESC WHERE CtrlIDField=@CTRLIDFIELD AND CtrlIDLanguage='EN-US'
      SET @error=@error+@@ERROR
     
    UPDATE App_FieldsDesc SET CtrlIDField=@CTRLIDFIELD,CtrlIDLanguage=@ZHCNCTRLIDLANGUAGE,FieldDesc=@ZHCNFIELDDESC WHERE CtrlIDField=@CTRLIDFIELD AND CtrlIDLanguage='ZH-CN'
    SET @error=@error+@@ERROR
   
    UPDATE App_FieldsDesc SET CtrlIDField=@CTRLIDFIELD,CtrlIDLanguage=@ZHHKCTRLIDLANGUAGE,FieldDesc=@ZHHKFIELDDESC WHERE CtrlIDField=@CTRLIDFIELD AND CtrlIDLanguage='ZH-HK'
    SET @error=@error+@@ERROR
   
      UPDATE App_Fields SET CtrlIDField= @CTRLIDFIELD,DataType=@DATATYPE WHERE CtrlIDField=@CTRLIDFIELD
      SET @error=@error+@@ERROR
      if(@error<>0)
     begin
           rollback tran
     end
     else
     begin
          commit tran   
     end
go

相关阅读 更多 +
排行榜 更多 +
幣安BNB币行情神器

幣安BNB币行情神器

金融理财 下载
币交所下载无需验证

币交所下载无需验证

金融理财 下载
愤怒的火柴人4中文版下载

愤怒的火柴人4中文版下载

角色扮演 下载