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 下面的评论所解释的那样。解决方案是将结果另存为文本文件,然后从那里读取结果。
我正在尝试通过查询 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 下面的评论所解释的那样。解决方案是将结果另存为文本文件,然后从那里读取结果。