2013-03-27 41 views
2

我想執行下面的T-SQL轉換動態sql的結果XML

declare @sql varchar(max) = 'select 1 a, 2 b for xml path (''''), root(''root'')' 
declare @t table (x xml) 
insert into @t exec (@sql) 

不過,我得到的

錯誤消息消息6819,級別16,狀態5, 2號線

FOR XML子句是不允許在INSERT語句

回答

3

嵌入查詢它在一個額外的select語句中創建XML。

declare @sql varchar(max) = ' 
select 
    (
    select 1 a, 
     2 b 
    for xml path (''''), root(''root'') 
)' 

declare @t table (x xml) 
insert into @t exec (@sql) 
+0

你能提供一個插入另一列(如主鍵)和xml列的例子嗎? – Maa421s 2015-11-17 19:45:06