¿Es posible establecer un índice dentro de una columna XML en SQL Server 2005 / SQL Server 2008?
Tengo una aplicación que almacena documentos xml dentro de una columna en SQL Server. La estructura del documento XML es similar a la siguiente:
<document>
<item>
...
<phoneNumber>0123456789</phoneNumber>
....
</item>
<item>
...
<phoneNumber>9876543210</phoneNumber>
....
</item>
...
</document>
Básicamente, esta columna almacena un conjunto de información del cliente. Los documentos XML pueden tener diferentes elementos secundarios dentro del elemento <item>, sin embargo, algunos de estos elementos secundarios están contenidos en todos los documentos (por ejemplo, el elemento <phoneNumber> en el ejemplo anterior).
De esta manera puedo tener, por ejemplo, una fila en la tabla que contiene el siguiente valor
<document>
<item>
<firstName>Carlos</firstName>
<lastName>Loth</lastName>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<firstName>Alberto</firstName>
<lastName>Tomatis</lastName>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
Y otra fila que contiene este documento
<document>
<item>
<orderNumber>XYZ</orderNumber>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<orderNumber>ABC</orderNumber>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
Entonces, mi pregunta es: ¿es posible crear un índice en esa columna XML basado en el elemento document / item / phoneNumber? Necesito realizar una consulta que devuelva la información almacenada en otras columnas "fijas conocidas" en función de la información del número de teléfono.
¿Alguna sugerencia o idea?
Gracias de antemano, Carlos Loth.