В таблице "Контакты" моей компании есть поле. В этой таблице есть столбец типа XML. Столбец содержит разные данные о конкретном контакте. НАПРИМЕР.
<contact>
<refno>123456</refno>
<special>a piece of custom data</special>
</contact>
Теги ниже contact
могут отличаться для каждого контакта, и я должен запросить эти фрагменты
рядом со столбцами реляционных данных в той же таблице.
Я использовал такие конструкции, как:
SELECT c.id AS ContactID,c.ContactName as ForeName,
c.xmlvaluesn.value('(contact/Ref)[1]', 'VARCHAR(40)') as ref,
INNER JOIN ParticipantContactMap pcm ON c.id=pcm.contactid
AND pcm.participantid=2140
WHERE xmlvaluesn.exist('/contact[Ref = "118985"]') = 1
Этот метод работает нормально, но для ответа сервера требуется некоторое время.
Я также исследовал использование функции node () для синтаксического анализа XML-узлов и exist () для проверки, содержит ли узел значение, которое я ищу.
Кто-нибудь знает лучший способ запроса столбцов XML ??