我有一個SQL Server 2008 R2中稱爲tblFiles的簡單表。如何爲XML數據執行SQL查詢(在SQLServer中)?
tblFiles如以下列:
- FILEID - (int)的主鍵
- 文件名 - (nvarchar的255)
- 元數據 - (XML)已被配置爲與一個XML模式用於 驗證。
的模式如下:
<?xml version="1.0" encoding="UTF-16"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="FileMetaData">
<xs:complexType>
<xs:sequence>
<xs:element name="CreatedDate" type="xs:time"/>
<xs:element name="ModifiedDate" type="xs:time"/>
<xs:element name="AccessDate" type="xs:time"/>
</xs:sequence>
<xs:attribute name="Length" type="xs:integer"/>
</xs:complexType>
</xs:element>
</xs:schema>
記錄中的一個示例XML元數據條目是:
<?xml version="1.0"?>
<FileMetaData Length="26">
<CreatedDate>10:13:53.1008</CreatedDate>
<ModifiedDate>10:14:02.0327</ModifiedDate>
<AccessDate>10:13:53.1008</AccessDate>
</FileMetaData>
我填充數據庫文件的負載及其關聯元數據。
我想解決的是如何編寫一個查詢,該查詢將返回在X和Y之間的XML中設置了長度的所有記錄?
如何導航SQL查詢中的XML?
TIA
我設法找出另一種方式來做到這一點使用以及查詢: SELECT的fileid,文件名,元數據 從文件中 WHERE MetaData.exist('/ FileMetaData [@Length> 25]')= 1 AND MetaData.exist('/ FileMetaData [@Length <30]')= 1 我已經嘗試了這兩種方法,但我列在這裏的有很多更好的性能(順便說一下,我在MetaData列上有一個XML索引)。 – millie