Chinaunix首页 | 论坛 | 博客
  • 博客访问: 316718
  • 博文数量: 17
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1105
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-18 20:28
文章分类

全部博文(17)

文章存档

2011年(1)

2008年(16)

我的朋友

分类: 数据库开发技术

2008-07-07 20:26:18

GO代表一个批处理的结束
你可以把每个GO之间的语句当成是一句SQL
GO不是标准的语法,只是查询分析器为了区分多个批处理而设的分隔符而已;
 
批处理sql语句时,常在语句的结尾加入Go,Go在语句中可以界定一段语句的结尾,如变量的作用范围等。在Go 语句之前加入Return 可以跳出Go 语句段。break可以跳出While 循环。
 
 
 
涉及到这种资金问题为什么不使用事务
事务是一种机制,是一个操作序列,他包含了一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或者撤消操作请求,就是说这一组数据库命令要么都执行,要么都不执行!
下面一段银行的转帐的事务列子
事务的相关T-SQL:
use DataBase
..........
GO
/*------开始事务------*/
begin transcation
/*------定义变量------*/
DECLARE @errorSum int
set @errorSum = 0 --初始化为0元
/*-----转帐:张三的帐户上少1000元,李四帐户上多1000元---------*/
update bank set cMoney = cMoney -1000 where name = '张三'
set @errorSum = @errorSum - @@error ----累计是否有错误
update bank set cMoney = cMoney + 1000 where name = '李四'
set @errorSum = @errorSum - @@error ----累计是否有错误
print '查看事务后的余额'
select * from bank

/*----------根据有错还是没错,确定失误要提交还是回滚---------*/
if @errorSum <> 0 ---如果有错误
begin
print '交易失败,回滚事务'
rollback transcation
end
else
begin
print '交易成功,写入硬盘,保存'
rollback transcation
end
go
print '查看事务后的余额'
select * from bank
go
 
阅读(1447) | 评论(0) | 转发(0) |
0

上一篇:SQL 例子 转载

下一篇:sql in与exists区别

给主人留下些什么吧!~~