加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver2005事务回滚案例

发布时间:2020-12-12 15:04:51 所属栏目:MsSql教程 来源:网络整理
导读:set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[proc_UpdateDepartCode] ?@oldCode varchar(50), ??? @newCode varchar(50), ??? @DepartID int, ??? @DepartName varchar(30), ??? @DepartAddress varchar(30), ??? @PersonID int,

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[proc_UpdateDepartCode]
?@oldCode varchar(50),
??? @newCode varchar(50),
??? @DepartID int,
??? @DepartName varchar(30),
??? @DepartAddress varchar(30),
??? @PersonID int,
??? @CompanyID int,
??? @Result int output
AS
BEGIN
?-- SET NOCOUNT ON added to prevent extra result sets from
?-- interfering with SELECT statements.
??? declare @sqlError int
??? set @sqlError = 0
?SET NOCOUNT ON;
??? Update tblDepart set ParentDepartCode = @newCode where ParentDepartCode = @oldCode
??? set @sqlError = @sqlError + @@error
??? Update tblDepart set DepartCode=replace(DepartCode,substring(DepartCode,1,4),ParentDepartCode) where ParentDepartCode = @newCode
??? set @sqlError = @sqlError + @@error
??? Update tblDepart set DepartCode = @newCode,DepartName=@DepartName,DepartAddress=@DepartAddress,PersonID=@PersonID,CompanyID=@CompanyID where DepartID = @DepartID
??? set @sqlError = @sqlError + @@error
???
??? if @sqlError <> 0
??? begin
????? rollback transaction
????? select @Result = 0
??? end
??? else
??? begin
?????? BEGIN TRANSACTION
?????? commit transaction
?????? select @Result = 1
??? end

???

??? END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读