У меня есть приложение, которое хранит документы XML внутри столбца на SQL Server. Структура XML-документа аналогична приведенной ниже:
<document>
<item>
...
<phoneNumber>0123456789</phoneNumber>
....
</item>
<item>
...
<phoneNumber>9876543210</phoneNumber>
....
</item>
...
</document>
В основном в этом столбце хранится информация о клиентах. XML-документы могут иметь различные дочерние элементы внутри элемента , однако некоторые из этих дочерних элементов содержатся во всех документах (например, элемент в приведенном выше примере).
Таким образом, я могу иметь, например, одну строку в таблице, содержащую следующее значение
<document>
<item>
<firstName>Carlos</firstName>
<lastName>Loth</lastName>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<firstName>Alberto</firstName>
<lastName>Tomatis</lastName>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
И еще одна строка, содержащая этот документ
<document>
<item>
<orderNumber>XYZ</orderNumber>
<phoneNumber>0123456789</phoneNumber>
</item>
<item>
<orderNumber>ABC</orderNumber>
<phoneNumber>987654321</phoneNumber>
</item>
</document>
Итак, мой вопрос: возможно ли создать индекс для этого столбца XML на основе элемента document / item / phoneNumber? Мне нужно выполнить запрос, который возвращает информацию, хранящуюся в других «фиксированных известных» столбцах на основе информации phoneNumber.
Есть предложения или идеи?
Заранее спасибо,
Карлос Лот.