49 
 User_Insert
  @UserName            nvarchar(50),
  
@UserID              int OUTPUT
AS
BEGIN
  
DECLARE @ErrorCode int
  
SELECT  @ErrorCode = 0

  
DECLARE @TranStarted bit
  
SELECT  @TranStarted = 0

  
IF(@@TRANCOUNT = 0)
  
BEGIN
    
BEGIN TRANSACTION
      
SELECT @TranStarted = 1
    
END
  
ELSE
    
SELECT @TranStarted = 0

  
INSERT INTO [User]
  (
    
[UserName]
  )
  
VALUES
  (
    
@UserName
  )

  
IF(@@ERROR <> 0)
  
BEGIN
    
SELECT @ErrorCode = -1
    
GOTO   Cleanup
  
END

  
SELECT @UserID = @@identity

  
IF(@TranStarted = 1)
  
BEGIN
    
SELECT @TranStarted = 0
    
COMMIT TRANSACTION
  
END

Cleanup:

  
IF(@TranStarted = 1)
  
BEGIN
    
SET @TranStarted = 0
    
ROLLBACK TRANSACTION
  
END

  
RETURN @ErrorCode

END

 User_Select
  @UserID            int
AS
BEGIN
  
DECLARE @ErrorCode int
  
SELECT  @ErrorCode = 0

  
DECLARE @TranStarted bit
  
SELECT  @TranStarted = 0

  
IF(@@TRANCOUNT = 0)
  
BEGIN
    
BEGIN TRANSACTION
      
SELECT @TranStarted = 1
    
END
  
ELSE
    
SELECT @TranStarted = 0

  
SELECT    [UserID],
            
[UserName]
    
FROM   [User]
    
WHERE  [UserID] = @UserID

  
IF(@@ERROR <> 0)
  
BEGIN
    
SELECT @ErrorCode = -1
    
GOTO   Cleanup
  
END

  
IF(@TranStarted = 1)
  
BEGIN
    
SELECT @TranStarted = 0
    
COMMIT TRANSACTION
  
END

Cleanup:

  
IF(@TranStarted = 1)
  
BEGIN
    
SET @TranStarted = 0
    
ROLLBACK TRANSACTION
  
END

  
RETURN @ErrorCode

END

 User_Update
  @UserID              int,
  
@UserName            nvarchar(50)
AS
BEGIN
  
DECLARE @ErrorCode int
  
SELECT  @ErrorCode = 0

  
DECLARE @TranStarted bit
  
SELECT  @TranStarted = 0

  
IF(@@TRANCOUNT = 0)
  
BEGIN
    
BEGIN TRANSACTION
      
SELECT @TranStarted = 1
    
END
  
ELSE
    
SELECT @TranStarted = 0

  
UPDATE [User]
  
SET    [UserName] = @UserName
  
WHERE  [UserID] = @UserID

  
IF(@@ERROR <> 0)
  
BEGIN
    
SELECT @ErrorCode = -1
    
GOTO   Cleanup
  
END

  
IF(@TranStarted = 1)
  
BEGIN
    
SELECT @TranStarted = 0
    
COMMIT TRANSACTION
  
END

Cleanup:

  
IF(@TranStarted = 1)
  
BEGIN
    
SET @TranStarted = 0
    
ROLLBACK TRANSACTION
  
END

  
RETURN @ErrorCode

END

相关文章:

  • 2021-10-05
  • 2021-09-28
  • 2022-01-12
  • 2021-11-28
  • 2021-07-15
  • 2022-02-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-04-27
相关资源
相似解决方案