我公司的「聯繫人」表中有一個字段。在該表中,有一個XML類型的列。該列包含有關特定聯繫人的混雜數據。例如。查詢SQLServer 2005中的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
此方法效果好,不過,它需要一段時間的服務器響應。 我也調查過使用nodes()函數解析XML節點,並存在()來測試節點是否保存我正在搜索的值。
有誰知道更好的方式來查詢XML列?
耗時,你的意思是服務器需要很長時間才能做出響應,或者需要花費很多精力來編寫查詢? – Espo 2008-09-09 14:59:53
我的意思是t需要很長時間才能讓服務器返回結果 – nialljsmith 2008-09-12 16:01:20