2012-07-10 70 views
-1

我有兩個表這樣創建存儲過程以獲取角色名稱?

 usertable         RoleTable 
-----------------------      --------------------------- 
    UserID|UserName|Pwd|RoleID    RoleID|RoleName 
    1 |Anil |123|1      1 |Admin 

我必須得到rolename時的用戶名和PWD比賽中,任何一個可以爲此提供我一個存儲過程嗎?

回答

1

有幾件事情可能不對您的場景:

  • 明文口令(你應該匹配鹽醃哈希值,而不是實際密碼),用戶和角色之間
  • 1-1的關係(不是很可擴展的未來)

假設你知道那些需要注意的地方:

CREATE PROCEDURE GetRoleName 

    @UserName VARCHAR(50), -- NVARCHAR if needed 
    @Password VARCHAR(50) 

AS 

SELECT R.RoleName FROM [User] U 
INNER JOIN [Role] R ON R.RoleId = U.RoleId 
WHERE U.UserName = @UserName and U.Pwd = @Password; 

GO 
0

嘗試用下面的查詢:

SELECT role.RoleName FROM usertable user JOIN RoleTabel role WHERE user.UserName=user_name AND user.Pwd=password; 

您可以按以下方式

CREATE PROCEDURE proc_GetRoleName 
      @username nvarchar(50), 
      @password nvarchar(50) 
    AS 
    BEGIN 
     SELECT role.RoleName FROM usertable user JOIN RoleTabel role WHERE [email protected] AND [email protected] ; 
    END 
在存儲過程中實現上面的查詢