双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于在存储过程中使用rollback的问题

wanghuirui wanghuirui 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CREATE PROCEDURE sp_website_modi --网址大全修改
@id int,
@name nvarchar(100),
@fid nvarchar(4), --原fid
@newfid nvarchar(4), --新fid
@iscolor int=0,
@isindex int=0,
@url nvarchar(100)=null,
@description nvarchar(2000)=null
as
set nocount on
begin
begin tran

update website set name=@name,fid=@newfid,iscolor=@iscolor,isindex=@isindex,url=@url,description=@description where id=@id

if @@error<>0 --有错误进行回滚
begin
rollback tran
return 0 --返回0表示添失败
end

update website_fenlei set num=num+1 where fid=@newfid --二级分类+1

if @@error<>0 --有错误进行回滚
begin
rollback tran
return 0 --返回0表示添失败
end

update website_fenlei set num=num+1 where fid=substring(@newfid,1,2)+'00' --一级分类+1

if @@error<>0 --有错误进行回滚
begin
rollback tran
return 0 --返回0表示添失败
end

update website_fenlei set num=num-1 where fid=@fid --二级分类-1

if @@error<>0 --有错误进行回滚
begin
rollback tran
return 0 --返回0表示添失败
end

update website_fenlei set num=num-1 where fid=substring(@fid,1,2)+'00' --一级分类-1

if @@error<>0 --有错误进行回滚
begin
rollback tran
return 0 --返回0表示添失败
end


commit tran

return 1
end
GO

在这个过程中每做一次数据处理都调用rollback这样很不好,如果只用一次rollback,任何一条语句处理出了问题都回滚
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
wanghuirui
MS-SQL Server 34,876 成员 254,635 内容