zoukankan      html  css  js  c++  java
  • 权限管理角色管理

    下面示图为角色管理介面。在数据表[Role]中,最少需要两个字段[RoleId]和[RoleName]。Project中所有角色在此介面进行管理。

    下面为表[Role]结构,直接拷贝在sql Server2008查询分析器执行:

    代码
    ET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[Role](
        
    [RoleId] [smallint] IDENTITY(1,1NOT NULL,
        
    [RoleName] [nvarchar](50NOT NULL,
        
    [Description] [nvarchar](100NOT NULL,
    PRIMARY KEY CLUSTERED 
    (
        
    [RoleId] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY],
     
    CONSTRAINT [UK_Role_UD980sA6] UNIQUE NONCLUSTERED 
    (
        
    [RoleName] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]

    GO

      

    插入的存储过程usp_Role_Insert:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE   PROCEDURE [dbo].[usp_Role_Insert]
    (
        
    @RoleName nvarchar(50),
        
    @Description nvarchar(50)
    )
    AS    
     
    SELECT [RoleName] FROM [Role] WHERE [RoleName]=@RoleName
    IF @@ROWCOUNT>0
    BEGIN
        
    RAISERROR(N'此角色已经存在,无法添加!',16,1)
        
    RETURN
    END
    ELSE

      
    BEGIN TRANSACTION
            
    DECLARE @err int
                
    INSERT INTO dbo.Role([RoleName],[Description]VALUES (@RoleName,@Description)
            
    SET @err=@@ERROR
            
    IF @err<>0    
            
    BEGIN
        
    ROLLBACK TRANSACTION        
            
    END
            
        
    COMMIT TRANSACTION

      

    最后即是更新的存储过程usp_Role_Update:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE  PROCEDURE [dbo].[usp_Role_Update]
    (
    @ID tinyint,
    @RoleName nvarchar(50),
    @Description nvarchar(50)
    )
    AS    
     
    SELECT [RoleName] FROM [Role] WHERE [RoleName]=@RoleName AND [RoleId] <> @ID
    IF @@ROWCOUNT>0
    BEGIN
        
    RAISERROR(N'此角色已经存在,无法更新!',16,1)
        
    RETURN
    END
    ELSE

      
    BEGIN TRANSACTION
            
    DECLARE @err int
                
    UPDATE [Role] SET [RoleName]=@RoleName,[Description]=@Description WHERE [RoleId]=@ID
            
    SET @err=@@ERROR
            
    IF @err<>0    
            
    BEGIN
        
    ROLLBACK TRANSACTION        
            
    END
            
        
    COMMIT TRANSACTION

    GO
  • 相关阅读:
    MAC下通过改apache配置文件切换php多版本的方法
    mac配置php7运行环境
    VS Code 配置 C/C++ 环境(转)
    go语言中goroute使用:=遇到的坑
    python中执行shell的两种方法总结
    对于pycharm和vscode下,从外部复制文本内容为python字符串内容是会自动加u202a解决办法
    在macOS下正确配置 VS Code 使用 virtualenv 里的 python 环境参数
    github上传时出现error: src refspec master does not match any解决办法
    VSCode tasks.json中的各种替换变量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等
    Sonar入门(四):Eclipse集成Sonar
  • 原文地址:https://www.cnblogs.com/insus/p/1776447.html
Copyright © 2011-2022 走看看