对于XML长度限制

jos*_*989 4 sql sql-server

我试图使用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
Run Code Online (Sandbox Code Playgroud)

Cᴏʀ*_*ᴏʀʏ 13

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

  • 使用Sql Server 2012 Managment工作室我不得不重新启动SSMS以使新的XML设置生效. (6认同)