【发布时间】:2013-09-18 00:42:06
【问题描述】:
我正在尝试使用 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 中,那么它将显示的字符数有限制。这可以通过一个选项进行更改。
-
我显然不能在这里编辑我的 cmets;我的意思是说截断,而不是串联。
-
它在 SSMS 中-按照 cory 的建议,我更改了 SSMS 中的限制,它工作正常。谢谢大家。
标签: sql sql-server