In letzter Zeit ich von XML für SQL Server geblasen wurde, aber dieser hier wird mir NüsseWarum diese XML-Abfrage in SQL Server arbeiten nicht
DECLARE @xml XML;
SET @xml = '
<ROOT>
<Object>
<FooProperty1>123</FooProperty1>
<FooProperty2>456</FooProperty2>
</Object>
<Object>
<FooProperty1>123</FooProperty1>
<FooProperty2>456</FooProperty2>
</Object>
</ROOT>
';
SELECT [doc].[FooProperty1].value('.', 'INT') AS [fooProperty1],
[doc].[FooProperty2].value('.', 'INT') AS [fooProperty2]
FROM @xml.nodes('/ROOT/Object')
AS [doc]
(
[FooProperty1],
[FooProperty2]
)
mich gibt
Msg 8159, Ebene 16 , Status 1, Zeile 22 'doc' hat weniger Spalten als in der Spaltenliste angegeben wurden.
Hat msg ändert sich nicht, wenn ich @xml
als
SET @xml = '
<ROOT>
<Object FooProperty1="123" FooProperty2="456"/>
<Object FooProperty1="123" FooProperty2="456"/>
</ROOT>
';
Dieser Ansatz funktioniert nur, wenn ich das erste Muster mit zusätzlichen Elementen für jede Spalte verwende ... Könnten Sie mir vielleicht ein Beispiel für das zweite Muster geben? –
Danke! .... –
@Andreas Niedermair: aktualisierte meine Antwort, um auch Ihr zweites Szenario (mit XML-Attributen) zu behandeln –