我正在尝试使用 XML PATH 在查询中连接某些字符串数据的结果

请参阅下面的查询。发生的情况是 XML 连接列语句被截断。似乎对最大长度有限制。我该如何克服这个问题。

select SUBSTRING(statement,1,len(statement)-2)+';'
from(
select
'update '+tab.table_name +' set ' +
(
select
col.COLUMN_NAME +'=replace('+col.column_name+',''@xx'',''yy'') ,'+CHAR(10)
from INFORMATION_SCHEMA.COLUMNS as col
where  tab.TABLE_CATALOG=col.TABLE_CATALOG
and tab.TABLE_SCHEMA=col.TABLE_SCHEMA
and tab.TABLE_NAME=col.TABLE_NAME
and col.DATA_TYPE in('VARCHAR','NVARCHAR')
for xml path('') )  as statement
from information_schema.TABLES as tab
) as x
where statement is not null

最佳答案

假设您在 SSMS 中看到截断,请更改 SSMS 选项中的最大字符设置:

  • 工具 > 选项 > 查询结果 > SQL Server > 结果转文本 > 每列显示的最大字符数
    (limit is 8192 characters)
    
  • 工具 > 选项 > 查询结果 > SQL Server > 结果到网格 > 检索的最大字符数
    Non XML data limit is 65535 characters
    XML data limit is Unlimited
    
  • 关于sql - 对于 XML 长度限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3113360/

    10-16 10:13