Ist es möglich, einen Index in einer XML-Spalte unter SQL Server 2005 / SQL Server 2008 festzulegen?
Ich habe eine Anwendung, die XML-Dokumente in einer Spalte auf SQL Server speichert. Die Struktur des XML-Dokuments ähnelt der folgenden:
<document>
<item>
...
<phoneNumber>0123456789</phoneNumber>
....
</item>
<item>
...
<phoneNumber>9876543210</phoneNumber>
....
</item>
...
</document>
Grundsätzlich speichert diese Spalte eine Reihe von Kundeninformationen. Die XML-Dokumente können innerhalb des <item> -Elements unterschiedliche untergeordnete Elemente aufweisen, dennoch sind einige dieser untergeordneten Elemente in allen Dokumenten enthalten (z. B. das <phoneNumber> -Element im obigen Beispiel).
Auf diese Weise kann ich zum Beispiel eine Zeile in der Tabelle haben, die den folgenden Wert enthält
<document>
<item>
<firstName>Carlos</firstName>
<lastName>Loth</lastName>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<firstName>Alberto</firstName>
<lastName>Tomatis</lastName>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
Und eine weitere Zeile mit diesem Dokument
<document>
<item>
<orderNumber>XYZ</orderNumber>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<orderNumber>ABC</orderNumber>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
Meine Frage ist also, dass es möglich ist, einen Index für diese XML-Spalte basierend auf dem Element document / item / phoneNumber zu erstellen. Ich muss eine Abfrage durchführen, die die in anderen "festen bekannten" Spalten gespeicherten Informationen basierend auf den phoneNumber-Informationen zurückgibt.
Anregungen oder Ideen?
Vielen Dank im Voraus, Carlos Loth.