CREATE TABLE #TempPPUser
(
UserID VARCHAR(64),
Groups VARCHAR(8000),
Roles VARCHAR(8000)
)
INSERT INTO #TempPPUser
SELECT tps_guid UserID, '' AS Groups, '' AS Roles FROM tps_user
DECLARE @UserID varchar(64), @GroupID varchar(64), @RoleID varchar(64)
DECLARE usersgroups_cursor CURSOR FOR
SELECT tps_user_id, tps_group_id
FROM tps_user_group
OPEN usersgroups_cursor
FETCH NEXT FROM usersgroups_cursor
INTO @UserID, @GroupID
UPDATE #TempPPUser
SET Groups = COALESCE(Groups + ',', '') + (SELECT tps_group.tps_name FROM tps_group WHERE tps_guid = @GroupID)
WHERE #TempPPUser.UserID = @UserID
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM usersgroups_cursor
INTO @UserID, @GroupID
UPDATE #TempPPUser
SET Groups = COALESCE(Groups + ',', '') + (SELECT tps_group.tps_name FROM tps_group WHERE tps_guid = @GroupID)
WHERE #TempPPUser.UserID = @UserID
END
CLOSE usersgroups_cursor
DEALLOCATE usersgroups_cursor
DECLARE usersroles_cursor CURSOR FOR
SELECT tps_user_id, tps_role_id
FROM tps_user_role
OPEN usersroles_cursor
FETCH NEXT FROM usersroles_cursor
INTO @UserID, @RoleID
UPDATE #TempPPUser
SET Roles = COALESCE(Roles + ',', '') + (SELECT tps_role.tps_name FROM tps_role WHERE tps_guid = @RoleID)
WHERE #TempPPUser.UserID = @UserID
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM usersroles_cursor
INTO @UserID, @RoleID
UPDATE #TempPPUser
SET Roles = COALESCE(Roles + ',', '') + (SELECT tps_role.tps_name FROM tps_role WHERE tps_guid = @RoleID)
WHERE #TempPPUser.UserID = @UserID
END
CLOSE usersroles_cursor
DEALLOCATE usersroles_cursor
SELECT tps_user.tps_name, #TempPPUser.Groups, #TempPPUser.Roles
FROM tps_user INNER JOIN #TempPPUser ON tps_user.tps_guid = #TempPPUser.UserID
WHERE tps_name = 'PPhillips1'
DROP TABLE #TempPPUser
END