# "ListProjects" 存储过程

说明：

这个过程根据发出请求用户的身份列出相关的项目信息。如果发出请求的用户是管理员（它的RoleID=1）的话，那么这个过程将仅仅列出用户自己从事的项目信息，但是如果发出请求的用户身份是项目经理（它的RoleID=2）的话，这个过程将列出他所管理的所有项目信息。

定义：

    	CREATE   PROCEDURE TT_ListProjects
    	(
    		@UserID int,
    		@RoleID int
    	)
    	AS

    	IF @RoleID = 1
    	BEGIN
    		SELECT ProjectID,
    			Name as ProjectName,
    			Description,
    			ManagerUserID,
    			UserName,
    			EstCompletionDate,
    			EstDuration
    		FROM
    			TT_Projects
    		INNER JOIN
    			TT_Users
    		ON
    			ManagerUserID = UserID
    	END

    	ELSE IF @RoleID = 2
    	BEGIN
    		SELECT ProjectID,
    			Name as ProjectName,
    			Description,
    			ManagerUserID,
    			UserName,
    			EstCompletionDate,
    			EstDuration
    		FROM
    			TT_Projects
    		INNER JOIN
    			TT_Users
    		ON
    			ManagerUserID = UserID
    		WHERE ManagerUserID = @UserID
    	END

用到的数据库表：

Projects表的主键是ProjectID字段，它的表结构如下图所示，其中ManagerUserID字段和Users表中的UserID字段相关联。

Users表的主键是UserID字段，它的表结构如下图所示：