`

sqlsql 事务

    博客分类:
  • sql
阅读更多
use stuDB
go
create table bank(
customerName char(10),
currentMoney Money
)
alter table bank
add constraint ck_currentMoney check(currentMoney>=1)

select * from bank
insert into bank (customerName,currentMoney)
select '张三',100
union all select '李四',200

update bank set currentMoney=currentMoney+10 where customerName='张三'
update bank set currentMoney=currentMoney-10 where customerName='李四'
go
--银行转账事务
select * from bank

begin transaction
set nocount on
declare @errorsum int
set @errorsum=0
update bank set currentMoney=currentMoney-100 where customerName='张三'
set @errorsum=@errorsum+@@error
update bank set currentMoney=currentMoney+100 where customerName='李四'
set @errorsum=@errorsum+@@error
select * from  bank
if @errorsum<>0
begin 
print '交易失败,回滚事务'
rollback transaction
end
else
begin 
print '交易成功,提交事务'
commit transaction
end
go
select * from bank
print @@version

 实例 银行 存支 业务

--存储过程事务实现存支
create procedure proc_takeMoney @card varchar(18),@m money,@type char(5),@inputPass char(6)=''
as
if exists(select cardID,pass from cardInfo where cardID=@card and pass=@inputPass)
begin 
declare @cID int
declare @yuE money
declare @errorsum int
set @errorsum=0
begin transaction 
set nocount on
select @cID=customerID, @yuE=balance from cardInfo where cardID=@card
if(@yuE<@m)
begin
set @errorsum=@errorsum+1
print '账户余额'+cast(@yuE as char)+'元'+'不能超额支取'
end
insert into transInfo(customerID,transDate,cardID,transType,transMoney)
values(@cID,getDate(),@card,@type,@m)
set @errorsum=@errorsum+@@error
if(@type='支取')
update cardInfo set balance=balance-@m where cardID=@card 
else
update cardInfo set balance=balance+@m where cardID=@card
set @errorsum=@errorsum+@@error
if(@errorsum<>0)
rollback transaction
else
commit transaction
end
go
--执行存储过程
exec proc_takeMoney '1010357612121131',10,'支取','000001'
exec proc_takeMoney '1010357612121131',20,'存入','000001'

exec proc_takeMoney '1010357612121131',220,'支取','000001'

delete transInfo where transMoney=20
update cardInfo set balance=210 where balance=330

 

  • 大小: 86.7 KB
分享到:
评论

相关推荐

    asp sql 事务处理

    在ASP中实现SQL事务处理,一般步骤如下: 1. 打开数据库连接: ```vbscript Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=SQLOLEDB;Data Source=&lt;数据库服务器&gt;;Initial Catalog=...

    SQL事务处理代码共享

    在本"SQL事务处理代码共享"资源中,我们重点关注如何在实际编程中实现SQL事务。通过分析其中的"bank"文件,我们可以了解到与银行交易相关的事务处理机制,这是数据库操作中的核心概念。 事务处理通常包含四个基本...

    sqlserver嵌套事务总结

    该文档从sqlserver事务讲起,详述ACID,@@trancount,在嵌套事务中使用保存点,命名事务等

    sql server 事务处理

    在SQL Server中,事务处理是数据库操作的核心组成部分,它确保数据的一致性和完整性。事务是一组逻辑操作,这些操作被视为单个单元,要么全部完成,要么全部回滚,以维护数据库的ACID(原子性、一致性、隔离性和持久...

    SQLServer存储过程中事务的使用方法

    在SQL Server中,事务是确保数据一致性的重要机制,特别是在存储过程中。存储过程是一组预编译的SQL语句,可以在数据库中被多次调用,提高了效率并降低了网络流量。本篇将详细介绍如何在SQL Server存储过程中使用...

    SQL 事务笔记

    在SQL Server中,事务是数据库操作的基本单位,用于确保数据的一致性和完整性。事务处理是数据库管理系统中的核心功能,它允许我们对一系列SQL语句进行原子性操作,即这些操作要么全部执行,要么全部不执行。这篇...

    asp.net sql事务简单实例

    SQL事务是数据库操作的重要概念,用于确保一组数据库操作要么全部成功,要么全部失败,以保持数据的一致性和完整性。 本实例是关于在ASP.NET中使用C#处理SQL事务的一个简单示例,非常适合初学者学习。在实际应用中...

    sql server事务日志解析工具

    每个 SQL Server 数据库都有事务日志,用于记录所有事务以及每个事务所做的数据库修改。 你是否想读取和分析SQL Server日志文件 (.ldf) ?正找不到合适的软件呢?以上一款强大的sql数据库日志分析工具,可以轻松打开...

    SQLSERVER 事务日志详解

    在SQL Server数据库管理系统中,事务日志是记录所有数据库更改操作的重要组件,它对数据库的稳定性和可恢复性起着至关重要的作用。本篇将深入探讨SQL Server事务日志的原理,以及如何利用`fn_dblog`这个系统存储过程...

    浅谈SQL Server中的事务日志(一)----事务日志的物理和逻辑构架 .docx

    SQL Server中的事务日志是数据库管理系统的关键组成部分,它在确保数据的持久性和事务一致性方面扮演着核心角色。事务日志的物理结构主要由虚拟日志文件(Virtual Log Files, VLFs)组成,这些文件是日志文件的逻辑...

    sqlserver2000事务问题.txt

    ### SQL Server 2000 事务处理详解 #### 一、事务概念及重要性 在数据库管理系统(DBMS)中,事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。如果这些操作中的一个失败,则整个事务将被回滚以确保...

    事务管理(二)——SQL SERVER的事务管理

    这篇博客“事务管理(二)——SQL SERVER的事务管理”可能详细介绍了SQL Server如何处理事务,包括事务的特性、隔离级别以及如何处理事务中的并发问题,如死锁。 首先,事务有四个基本特性,即原子性(Atomicity)...

    SQL Server -事务和游标

    在SQL Server数据库管理系统中,事务和游标是两个非常重要的概念,它们对于数据操作和处理具有深远的影响。本文将深入探讨这两个主题,并解释如何利用它们解决日常数据库管理中遇到的复杂问题。 首先,我们来谈谈...

    多行SQL导入ACCESS事务的代码写法

    ### 多行SQL导入ACCESS事务的代码写法 #### 知识点概述 本文档将详细介绍如何使用ADO(ActiveX Data Objects)技术结合事务处理功能,实现多行数据的高效导入到Microsoft Access数据库中的方法。在开发过程中,...

    SQL数据库事务处理

    ### SQL数据库事务处理详解 #### 一、事务基础概念 在多用户并行访问的数据库环境中,为了确保数据的一致性和完整性,SQL Server 使用了一种称为“事务”的机制。事务可以被视为一系列操作的集合,这些操作作为一...

    SQL server中的事务

    在SQL Server数据库管理系统中,事务是一种非常重要的概念,它保证了数据库操作的完整性和一致性。本章节的内容主要围绕事务、游标和锁三个数据库操作相关的知识点进行展开,目的是帮助读者深入理解这三个概念,并...

    Sql Server数据库事务介绍

    Sql Server数据库事务介绍 Sql Server数据库事务是指在数据库中的一系列操作Either成功或失败的操作单元。事务可以保证数据库的数据一致性和完整性。在Sql Server中,事务可以通过Sql语句、SqlTransaction和...

    SQL Server 2000完结篇系列之三:数据并发-彻底掌握SQL Server 2000事务机制

    在SQL Server 2000中,事务管理是数据库系统中至关重要的部分,因为它涉及到数据的一致性、完整性和并发控制。本篇将深入探讨SQL Server 2000的事务机制,帮助你全面理解并掌握如何在多用户环境下有效地处理数据并发...

    Delphi SQLSERVER事务处理应用例子

    在 Delphi 这样的集成开发环境中,与 SQL Server 数据库进行交互时,事务处理尤为重要。本篇将深入探讨 Delphi 配合 SQL Server 实现事务处理的相关知识点,并通过实例来演示如何在 Delphi 应用程序中运用。 首先,...

    SQLServer数据库事务分匹数据

    SQLServer数据库事务分匹数据

Global site tag (gtag.js) - Google Analytics