我正在尝试将大量记录 ID 合并为一个以逗号分隔的字符串变量。但是,生成的 n/varchar 变量总是在 4096 个字符处被截断。
这是我正在尝试的 SQL 语句 -
DECLARE @docIds varchar(max)
SELECT @docIds = COALESCE(@docIds + ',', '') + CAST(docUid AS varchar(32))
FROM Documents
我发现了许多其他关于 n/varchar(max) 截断和连接的 SO 链接,但似乎无法解决我上面的查询。我也试过-
DECLARE @docIds varchar(max) SET @docIds = ''
SELECT @docIds = @docIds + ',' + CAST(docUid AS varchar(32))
FROM Documents
SET @docIds = STUFF(@docIds, 1, 1, '');
从上面的两个查询中,SELECT LEN(@docIds)
最多只能返回 4096。
问题:如何在没有截断问题的情况下将上述检索完成到单个字符串变量中?