sqlserver 2008实现的转账事务模拟

use master

drop table customer

create table customer(

id int primary key,

account decimal check(account>0),

name varchar(20)

)

--use master

alter table dbo.customer

add check(customer.account>0)

select * from customer

insert into customer values(2012090101,2000,‘张三‘);

insert into customer values(2012090102,1000,‘李四‘);

insert into customer values(2012090103,1000,‘王五‘);

begin transaction

declare @sum int

set @sum=0

update customer set account-=200 where customer.id=2012090101

set @sum+[email protected]@ERROR

update customer set account+=200 where customer.id=2012090102

set @sum+[email protected]@ERROR

--update customer set account-=100 where customer.id=2012090103

if @sum<>0

begin

print ‘转账失败‘

rollback transaction

end

else

begin

print ‘成功转账‘

commit transaction

end

go

select * from customer

时间: 2024-08-30 03:46:19

sqlserver 2008实现的转账事务模拟的相关文章

使用SQLServer 2008的CDC功能实现数据变更捕获

原文:使用SQLServer 2008的CDC功能实现数据变更捕获 最近由于工作需要,研究了一下2008 CDC功能,觉得还不错,下面整理了一下研究过程,虽然比较粗略,但是基本上能用了,如果有补充请大家回复,我视情况修改原帖,谢谢. 背景: 在SQLServer2008之前,对数据变更的捕获通常使用触发器.时间戳等低效高成本的功能来实现,所以很多系统都没有做数据变更或者仅仅对核心表做监控. 自从SQLServer2008引入了数据变更捕获功能(后面简称为CDC)后,解决了很多烦恼问题,如客户2个

php5.4.3如何连接sqlServer 2008 r2

php5.4.3如何连接sqlServer 2008 r2 1.下载 ntwdblib.dll,(http://yunpan.cn/QiRkGyLH2YYJy (提取码:edfc)),拷贝到 php安装路径的根目录下 和 Apache服务器安装路径的bin文件夹下: 2.下载sqlsrv相关文件,(http://yunpan.cn/QiRvdnxjVDffh (提取码:2f04)),解压后,双击exe文件,得到一批文件: 如果是php5.3和之前版本的,如果你安装的php是非线程安全的,复制ph

SQLserver 2008同步复制创建后新增表/函数/存储过程(不重新初始化快照)

SQLserver 2008同步复制创建后新增表/函数/存储过程(不重新初始化快照) 一.在生产环境中已有事务复制中(复制类型为事务发布),需要对已有发布的数据库新增表.视图.存储过程等,这些变更是不会同步到从库中.如必须应用到从库,有以下两种方法: 1.如果采用默认的设置,每次都需要重新初始化快照,从库重新应用快照和未执行的同步命令,这在生产环境中对数据库压力或性能或DBA可维护性表现的很差. 2.将新增的架构变更新建一个新的发布订阅,但会造成维护困难,增加出错的几率. 3.可以通过设置imm

SqlServer bug:sp_replqueuemonitor 在SqlServer 2008(RTM) 执行无结果

当前版本:windows server 2008 r2 sp1 + SqlServer 2008 (RTM) sp_replqueuemonitor 此存储过程列出 MicrosoftSQL Server 队列或 Microsoft 消息队列中指定发布的排队更新订阅的队列消息. (在订阅数据库中,查看队列正在执行(或堵塞)的命令--即正在从订阅同步回到发布的命令) 然而该存储过程在windows server 2008 r2 sp1 + SqlServer 2008 (RTM) 执行无任何结果返

sqlserver 2008 r2 直接下载地址,可用迅雷下载

转自 http://www.cnblogs.com/chinafine/archive/2010/12/23/1915312.html 下载sqlserver 2008 r2 ,微软用了一个下载器,经过从下载器上,将他的地址全部用键盘敲了下来.最终的简体中文版地址如下: 32位: http://care.dlservice.microsoft.com/dl/download/1/e/6/1e626796-588a-495c-917B-321093fb98eb/2052/sqlfull_x86_c

SQLServer 2008中SQL增强之三 Merge(在一条语句中使用

SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MSDN:http://msdn.microsoft.com/zh-cn/library/bb510625.aspx 功能:根据与源表联接的结果,对目标表执行插入.更新或删除操作.例如,根据在另一个表中找到的差异在一个表中插入.更新或删除行,可以对两个表进行同步. 我们看一个例子,假如,有一总产品列表,一

Editplus+Oracle+Visual Studio 2012+SqlServer 2008+SqlServer 2012+MyEclipse 10.6+MyEclipse 2015+WebStorm 11+WebStorm 10+WPS专业版--所有安装包,加破解 下载地址

Editplus  下载链接:https://share.weiyun.com/76924b230d140da21ea4ed877309eb5e (密码:Oftbnq) Oracle  下载链接:https://share.weiyun.com/1cc1209f483b7c298499228256f36b66 (密码:q5sPUC) Visual Studio 2012  下载链接:https://share.weiyun.com/599d9f7b1ba2826ba045f1e56297dcf2

SQLServer 2008 R2 发布订阅配置指南

原以为配置SQLServer 2008 R2的发布订阅很简单,实际配置后才发现过程中有问题地方一直都没搞明白,最后经过几天的查找问题和实践,终于搞定了.现将过程记录如下. 一.发布服务器配置第一步:设置SQLAgent服务登录帐户为Administrators用户,设置后重新启动服务 第二步:在配置管理器里设置订阅服务器别名,设置后重起服务 注意32位和64位两处都要设置 第三步:右键点击本地发布,进入发布流程(保证sql服务器名称和系统服务器名称相同) 为发布的表单独建一个帐号 二.订阅服务器

sqlserver 2008 安装完后无法为该请求检索数据

sqlserver 2008 安装完后, 连接本地数据库没有问题,连接远程数据库是报无法为该请求检索数据.microsoft.sqlserver.management.sdk.sfc 执行transact-sql 语句或批处理时发生了异常 解决方法 打上SQL SERVER SP1补丁. 下载地址: http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=66AB3DBB-BF3E-4F46-9559-CCC6A4F9DC19