大家帮忙看一下事务这样写有没有问题
时间:2011-12-08
来源:互联网
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
update XML_Os
set OState = @OState
where OID = @OID
IF( @@ERROR <> 0 )
BEGIN
GOTO Cleanup
END
exec UpdateSale @OID
IF( @@ERROR <> 0 )
BEGIN
GOTO Cleanup
END
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
END
作者: zhouyisafen 发布时间: 2011-12-08
DECLARE @TranStarted bit
SET @TranStarted = 0
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
drop table #Temp_Items
select * into #Temp_Items
from
(
select productid,sum(quantity) as quantity, ROW_NUMBER() over(order by productid asc) as RowNumber
from xml_items
where oid=@OID group by productid
) xml_items
declare @maxNumber int
set @maxNumber=0
select @maxNumber = max(rownumber) from #Temp_Items
declare @counter int
set @counter = 1
while (@counter <= @maxNumber)
begin
declare @quantity int
set @quantity = 0
select @quantity = quantity from #Temp_Items where rownumber = @counter
IF( @@ERROR <> 0 )
BEGIN
GOTO Cleanup
break
END
declare @productid int
set @productid = 0
select @productid = productid from #Temp_Items where rownumber = @counter
IF( @@ERROR <> 0 )
BEGIN
GOTO Cleanup
break
END
update mobilecovers set sale = sale + @quantity where coverid = @productid
set @counter = @counter + 1
IF( @@ERROR <> 0 )
BEGIN
GOTO Cleanup
break
END
end
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF( @TranStarted = 1 )
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
作者: zhouyisafen 发布时间: 2011-12-08
作者: HEROWANG 发布时间: 2011-12-08
update XML_Os
set OState = @OState
where OID = @OID
exec UpdateSale @OID
IF( @@ERROR <> 0 )
rollback
else COMMIT TRANSACTION
作者: HEROWANG 发布时间: 2011-12-08
这个是什么语法?
作者: fredrickhu 发布时间: 2011-12-08
Cleanup:
这个是什么语法?
楼主是用的 goto、,就是对下面的程序做一个标示,是用goto跳转到该标示处
作者: HEROWANG 发布时间: 2011-12-08
作者: zhouyisafen 发布时间: 2011-12-08
可以用那个存储过程反回信息来判断吧。
作者: jinfengyiye 发布时间: 2011-12-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28