我正在尝试使用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