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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage