STUFF 函数截断结果

STUFF function truncated result

我正在尝试通过查询 table 并使用 STUFF 函数并将结果返回到变量 (DECLARE @dynamic_query NVARCHAR(max)) 来生成动态 sql。

我的问题是 STUFF 函数返回的结果是 truncated/incomplete。 @dynamic_query 的内容将被缩短。我在网上找不到任何关于 STUFF 函数字符限制的参考,所以我不知道为什么会这样。

我试图在 fiddle: http://sqlfiddle.com/#!18/e160f2/1/0 中演示问题,但是,我无法在 fiddle 中重新创建它,也无法使用 T-SQL变量。但是,希望它能让您大致了解我要做什么。

SELECT STUFF((
          SELECT 'CASE WHEN (long complicated ' + text_value + 'subqueries) THEN 0 ELSE 1, '
                  + 'WHEN (more long subqueries I dont want to type blahblahblahblah)'
          FROM source_table
          FOR XML PATH('')
        ), 1, 0, '')

假设结果被缩短,最后的字符类似于“WHEN (more lo”。

我认为这可能是因为我将结果返回的变量太小但它肯定是 NVARCHAR(max)。

知道为什么会这样吗?

这是因为 SSMS 没有返回所有结果,正如我 post 下面的评论所解释的那样。解决方案是将结果另存为文本文件,然后从那里读取结果。