Dies ist ein Wert in einem Feld namens DataFields in einer Tabelle namens objects:
<data><styleid>287634</styleid><c1001>S</c1001><c1002>S</c1002><c1004>S</c1004></data>
Ich muss das tun:
Select into objectsindex (product, typeid, classid, objectid, FieldName, FieldValue)
Values
select
product,
typeid,
classid,
objectid,
FieldName = 'c1001',
FieldValue = CONVERT(xml, DataFields).value('(/data/c1001/node())[1]', 'nvarchar(1)')
from objects where typeid = 45
für jeden XML-Knoten in diesem Feld (außer dem <data></data>
y <styleid></styleid>
Knoten) und für jeden Datensatz der Tabelle "Objekte" mit typeid = 45.
Die Werte "c1001" und /c1001/ sind Variablen, die aus dem Feld DataFields gezogen werden müssen.
Ich habe c# in den Titel gesetzt, weil ich davon ausgehe, dass viele von Ihnen mir sagen werden, dass dies keine Aufgabe für SQL allein ist. Aber ich weiß, dass es einige echte SQL-Genies da draußen gibt, also hoffe ich auf eine SQL-Lösung.