Ich habe ein XML-Feld, von dem ich weiß, dass es mindestens einen "ChildNode" enthalten wird, aber möglicherweise mehr. Ich versuche, eine Schleife in T-SQL zu machen, die das XML jedes ChildNode als VarChar (1000) erhält und einige Logik damit macht. Wenn ich folgendes versuche ...
%Vor%Ich erhalte den folgenden Fehler: Das Argument 1 der XML-Datentypmethode "value" muss ein Zeichenfolgenliteral sein.
Ich weiß, dass es explodiert, wenn ich versuche, den @intIterator in der value-Methode zu verwenden, da es ein String-Literal anstelle einer Variablen verlangt, aber wie kann ich dann in T-SQL nacheinander die untergeordneten Knoten durchlaufen?
Ich habe keine Ahnung, wie Ihr XML aussieht, aber Sie müssen wahrscheinlich einen anderen Ansatz verwenden - versuchen Sie nicht, iterieren und loopen und so etwas zu verwenden - verwenden Sie stattdessen die Funktion .nodes()
in XQuery:
Das lässt das iterating / looping zu XQuery im Grunde und Sie müssen nicht mit Indexen oder etwas ähnlichem herumgehen .....
Es könnte immer noch notwendig sein, Unterelemente abzufragen, die die Antwort auf diese Frage nicht lösen würde. Sie können einfach die Variable sql: verwenden, um die Bedingung nodes () eines String-Literalarguments zu erfüllen, um Unterelemente eines bestimmten Knotens iterativ abzufragen.
%Vor%Tags und Links tsql