Dot*_*per 6 sql-server-2008 xml
我正在使用这样的 SQL 查询创建 xml:首先是 CTE,然后SELECT
是创建 XML的语句。
那个有效。但是,我想将输出存储在 XML 变量中(如果更容易,表变量也可以)。但我似乎无法让它工作(见第二个片段)。有什么建议?
有效的 XML 生成:
;WITH cte
AS (SELECT ...
)
SELECT ...
FOR XML PATH ('root')
Run Code Online (Sandbox Code Playgroud)
这是我尝试将它存储在表变量中,但我无法让它工作:
DECLARE @myXml TABLE(
x xml
);
;WITH cte
AS (SELECT ...
)
INSERT INTO @myXml SELECT ...
FOR XML PATH ('root')
Run Code Online (Sandbox Code Playgroud)
这是由此产生的错误消息:
Meldung 6819, Ebene 16, Status 1, Zeile 240
Die FOR XML-Klausel ist in einer INSERT-Anweisung nicht zulässig。
(我不能在插入语句中使用 FOR XML。)
您将分配放在 CTE 声明之后。
declare @X xml;
with C as
(
select 1 as X, 2 as Y
)
select @X =
(
select *
from C
for xml path('root')
);
Run Code Online (Sandbox Code Playgroud)
如果您希望 XML 以表变量结尾,则它看起来像这样。
declare @T table (X xml);
with C as
(
select 1 as X, 2 as Y
)
insert into @T(X)
select (
select *
from C
for xml path('root')
);
Run Code Online (Sandbox Code Playgroud)