このquestionに続いて、xml変数にselect結果を入れる必要があります。このエラーメッセージを回避する方法 "FOR XMLおよびFOR JSON句は、ビュー、インライン関数、派生テーブル、サブクエリにセット演算子が含まれている場合は無効です。回避するには、派生テーブルを使用してセット演算子を含むSELECTをラップしますまたは共通の表の式またはビューを使用し、その上にFOR XMLまたはFOR JSONを適用してください。 "xml変数にCDATAを含むSQL Server XML出力
ここでは、テストコード:
declare @agent table
(
AgentID int,
Fname varchar(5),
SSN varchar(11)
)
insert into @agent
select 1, 'Vimal', '123-23-4521' union all
select 2, 'Jacob', '321-52-4562' union all
select 3, 'Tom', '252-52-4563'
SELECT
1 AS Tag,
NULL AS Parent,
NULL AS 'Agents!1!',
NULL AS 'Agent!2!AgentID',
NULL AS 'Agent!2!Fname!Element',
NULL AS 'Agent!2!SSN!cdata'
UNION ALL
SELECT
2 AS Tag,
1 AS Parent,
NULL,
AgentID,
Fname,
SSN
FROM @agent
FOR XML EXPLICIT
そして、ここで私が何をしたいの例:
Declare @xml xml
...
set @xml= (SELECT
1 AS Tag,
NULL AS Parent,
NULL AS 'Agents!1!',
NULL AS 'Agent!2!AgentID',
NULL AS 'Agent!2!Fname!Element',
NULL AS 'Agent!2!SSN!cdata'
UNION ALL
SELECT
2 AS Tag,
1 AS Parent,
NULL,
AgentID,
Fname,
SSN
FROM @agent
FOR XML EXPLICIT)