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) |