STUFF FOR XML Concat 正在截断其余记录

STUFF FOR XML Concat is truncating the rest of the records

我有一个帐户 table 用于添加列作为透视视图。

Account
Account1
Account2
Account3
Account4
Account5
Account6
Account7
Account8

目前我手动执行此过程,只要有新帐户添加,我就会删除并重新创建视图,然后手动将新帐户添加为列。

为了自动执行此过程,我创建了一个动态 sql 存储过程,作为该过程的一部分,我有以下查询:

SELECT @pivotColumns = STUFF(
   (SELECT DISTINCT concat(',', quotename(AccTbl.Account))
    FROM [Accounts] AccTbl
    WHERE AccTbl.Active = 'YES'
    FOR XML Path(''), TYPE).value('(./text())[1]', 'NVARCHAR(MAX)'), 1, 2, '');

出于某种原因,生成的动态 sql 结果截断了剩余的帐户,它只打印帐户 table 中 40 多个帐户中的前几个帐户...为什么是吗?

[Account1],[Account2],[Account3],[Account4],[Account5],[Account6

是因为这部分吗?

, 1, 2, '')

注意:我有超过 40 个帐户。为了简单起见,我在这里只代表大约 8 个。 注 2:我知道人们会推荐 STRING_AGG 但我目前有 sql server 2016 :/

改变

, 1, 2, '')

, 1, 1, '')