Nach diesem question, muss ich das select-Ergebnis in eine XML-Variable. So vermeiden Sie die Fehlermeldung "Die FOR XML- und FOR JSON-Klauseln sind in Sichten, Inline-Funktionen, abgeleiteten Tabellen und Unterabfragen ungültig, wenn sie einen Mengenoperator enthalten. Umwickeln Sie den SELECT-Operator, der einen Mengenoperator enthält, mithilfe der abgeleiteten Tabelle oder einen gemeinsamen Tabellenausdruck oder betrachten und wenden Sie FOR XML oder JSON darüber an. ", bitte?SQL Server XML-Ausgabe mit CDATA in XML-Variable
Hier ist der Testcode:
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
Und hier ein Beispiel dafür, was ich tun möchte:
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)