zoukankan      html  css  js  c++  java
  • aspnet_Roles_CreateRole

    ALTER  PROCEDURE dbo.aspnet_Roles_CreateRole  --创建角色
        @ApplicationName  NVARCHAR(256),
        
    @RoleName         NVARCHAR(256)
    AS
    BEGIN
        
    DECLARE @ApplicationId UNIQUEIDENTIFIER
        
    SELECT  @ApplicationId = NULL

        
    DECLARE @ErrorCode     INT
        
    SET @ErrorCode = 0

        
    DECLARE @TranStarted   BIT
        
    SET @TranStarted = 0

        
    IF@@TRANCOUNT = 0 ) --如果当前活动事务为0,开始事务并设置事务参数为1
        BEGIN
            
    BEGIN TRANSACTION
            
    SET @TranStarted = 1
        
    END
        
    ELSE
            
    SET @TranStarted = 0

        
    EXEC dbo.aspnet_Applications_CreateApplication @ApplicationName@ApplicationId OUTPUT
             
    /*根据输入参数执行存储过程返回@ApplicationId,目的应该就是这个*/
        
    IF@@ERROR <> 0 )--如果有错误则跳转到回滚段
        BEGIN
            
    SET @ErrorCode = -1
            
    GOTO Cleanup
        
    END
         
        
    IF (EXISTS(SELECT RoleId FROM dbo.aspnet_Roles WHERE LoweredRoleName = LOWER(@RoleNameAND ApplicationId = @ApplicationId))
          
    /*如果存在此角色返回错误代码1,并跳转到回滚段*/
        
    BEGIN
            
    SET @ErrorCode = 1
            
    GOTO Cleanup
        
    END

        
    INSERT INTO dbo.aspnet_Roles
                    (ApplicationId, RoleName, LoweredRoleName)
             
    VALUES (@ApplicationId@RoleNameLOWER(@RoleName))
          
    --不存在就插入此记录
        IF@@ERROR <> 0 ) ---有错误就回滚(还是跳转)
        BEGIN
            
    SET @ErrorCode = -1
            
    GOTO Cleanup
        
    END

        
    IF@TranStarted = 1 ) --如果事物执行到这里,且事务参数没变
        BEGIN
            
    SET @TranStarted = 0  --重新设置事务参数为0
            COMMIT TRANSACTION    --结束事务
        END

        
    RETURN(0)

    Cleanup:   
    ---跳转段

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

        
    RETURN @ErrorCode

    END
  • 相关阅读:
    深圳移动 神州行(大众卡/轻松卡/幸福卡)套餐资费(含香港日套餐)信息及使用方法
    PHP设置时区,记录日志文件的方法
    微信公众平台消息接口使用指南
    C#日期时间格式化
    使用CMD实现批量重命名[转]
    Python高效编程技巧
    实用WordPress后台MySQL操作命令
    ubuntu-wine
    Javascript 笔记与总结(2-8)对象2
    Swift5.3 语言指南(十) 枚举
  • 原文地址:https://www.cnblogs.com/ruanbl/p/491902.html
Copyright © 2011-2022 走看看