1
Ich versuche, das XML im folgenden gewünschten Format in SQL Server 2014 zu generieren. Aber ich bin nicht in der Lage, diese kleine Änderung des Hinzufügens des Attributnamens zum Param durchzuführen Elemente. Ich möchte einfach das Attribut "name" dem Param-Element mit dem Wert hinzufügen.sql server - Für XML Raw - Ein benutzerdefiniertes Attribut zum Element hinzufügen
aktuelle SQL-Statements: -
Declare @requestMessage xml,
@P1 nvarchar(20)= 'Rocky', @P2 nvarchar(20) = 'Boxer', @P3 nvarchar(20) = 'SpaceX',
@P4 nvarchar(20)
select @requestMessage = (select 'dbo.usp_InsertUserPlay' as [SProc],
(select @P1 as [Param],
@P2 as [Param],
@P3 as [Param],
@P4 as [Param],
0 as [Param]
FOR XML RAW('ParamList'), TYPE, ELEMENTS XSINIL)
FOR XML PATH('AsyncRequest'), TYPE, ELEMENTS XSINIL)
select @requestMessage AS XML_Output
XML-Ausgabe: -
<AsyncRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SProc>dbo.usp_InsertUserPlay</SProc>
<ParamList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Param>Rocky</Param>
<Param>Boxer</Param>
<Param>SpaceX</Param>
<Param xsi:nil="true" />
<Param>0</Param>
</ParamList>
</AsyncRequest>
Mein Wunsch XML-Ausgabe: -
<AsyncRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SProc>dbo.usp_InsertUserPlay</SProc>
<ParamList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Param name="P1">Rocky</Param>
<Param name="P2">Boxer</Param>
<Param name="P3">SpaceX</Param>
<Param name="P4" xsi:nil="true" />
<Param name="P5">0</Param>
</ParamList>
</AsyncRequest>
Danke für die Hilfe :-) – Karan
Eine andere Sache, die ich hier bemerkt. Wir müssen die nicht auf Zeichenfolgen basierenden Parameter auf den Datentyp Nvarchar (max) CAST stellen, um den Laufzeit-XML-Generierungsfehler zu vermeiden. Zum Beispiel, wenn @ P4 int ist, dann sollte die Anweisung sein ('P4', CAST (@ P4 als nvarchar (max))) – Karan