我正在尝试使用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
答案 0 :(得分:11)
假设您在SSMS中看到截断,请更改SSMS选项中的最大字符设置:
工具>选项>查询结果> SQL Server>结果到文本>每列中显示的最大字符数
(limit is 8192 characters)
工具>选项>查询结果> SQL Server>结果到网格>检索到的最大字符数
Non XML data limit is 65535 characters
XML data limit is Unlimited