Я начал с ответа на этот вопрос .
Я решил, что хочу получить информацию (пользователи, роли CSV для каждого пользователя) из представления. Представлению не понравился синтаксис XML WITH / FOR, поэтому я решил поместить эту часть в функцию.
Вид выглядит примерно так:
SELECT u.UserId, u.UserName, dbo.GetRolesCsvFromUserId(u.UserId)
FROM Users u
Я был успешным вплоть до удаления запятой. Вот функция. Как удалить запятую из этой функции?
CREATE FUNCTION [dbo].[GetRolesCsvFromUserId] (@UserId int)
RETURNS nvarchar(100) AS
BEGIN
RETURN
(
SELECT r.RoleName + ',' AS 'data()'
FROM Roles r INNER JOIN UsersInRoles ur ON ur.RoleId = r.RoleId
WHERE ur.UserId = @UserId FOR XML PATH('')
)
END