2010-06-24 188 views
3

我嘗試使用XML PATH對於XML長度限制

查看查詢below.What恰好串聯在查詢一些字符串數據的結果是,XML級聯列的語句獲取truncated.Seems像有一個限制最大長度。我如何克服這一點。

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

難道級聯當您從一個應用程序數據拉回來,或者在SSMS? – 2010-06-24 19:49:23

+0

你如何執行上述操作?如果它在SSMS中,那麼它將顯示的字符數量是有限制的。這可以通過選項進行更改。 – 2010-06-24 19:52:46

+1

我顯然不能在這裏編輯我的評論;我的意思是說__truncated__,而不是連接。 – 2010-06-24 19:55:40

回答

10

假設你看到在SSMS截斷,在SSMS的選項更改最大字符設置:

  • 工具>選項>查詢結果> SQL服務器>結果爲文本>的最大數目每列中顯示的字符

    (limit is 8192 characters) 
    
  • 工具>選項>查詢結果> SQL服務器>結果到網格>最大字符檢索

    Non XML data limit is 65535 characters 
    XML data limit is Unlimited 
    
+0

似乎工作 - 謝謝 – josephj1989 2010-06-24 20:15:56

+5

使用Sql Server 2012管理工作室我不得不重新啓動SSMS,使新的XML設置生效。 – stuartd 2014-07-17 01:16:15