1. xml index altertable orders addconstraint pk_orders_orderid primarykeyclustered(orderid) createprimary xml index xidx_details on orders(details) create xml index xidx_details_path on orders(details) using xml index xidx_details for path create xml index xidx_details_property on orders(details) using xml index xidx_details for property create xml index xidx_details_value on orders(details) using xml index xidx_details for value 2. Demo XML表达式查询 declare@mydoc xml set@mydoc=' <AAA> <BBB/> <BBB/> <CCC> <DDD/> <BBB> <EEE/> </BBB> </CCC> </AAA> ' select@mydoc.query('//BBB') select@mydoc.query('//BBB[1]') select@mydoc.query('/AAA/BBB[1]') select@mydoc.query('/AAA/BBB[last()]') declare@mydoc xml set@mydoc=' <AAA> <BBB ID="1"/> <BBB ID="2"/> <CCC> <DDD/> <BBB ID="3"> <EEE/> </BBB> </CCC> </AAA> ' select@mydoc.query('/AAA/BBB[@ID="1"]') select@myDoc.query('/bookstore/book/title') 查询条件可以是attribute, 也可以是element,如下是element示例 select@myDoc.query('/bookstore/book[price>30]') 3. FLOWER declare@myDoc xml set@myDoc=' <AAA> <BBB ID=" 1" /> <BBB ID="1" /> <BBB NAME="NAME1"/> <CCC ID="1"> <DDD/> <BBB> <EEE ID="1"/> </BBB> <BBB/> </CCC> </AAA> ' select@myDoc.query(' for $id in /AAA/BBB return $id') declare@myDoc xml set@myDoc=' <AAA> <BBB>HELLO</BBB> <BBB>Welcome</BBB> <BBB NAME="NAME1"/> <CCC ID="1"> <DDD/> <BBB>OK <EEE ID="1"/> </BBB> <BBB/> </CCC> </AAA> ' select@myDoc.query(' for $id in //BBB return <result>{data($id)}</result>') declare@myDoc xml set@myDoc=' <bookstore> <book category="COOKING"> <title>Everyday</title> <author>Giade De</author> <price>30.00</price> </book> <book category="COMPUTER"> <title>Windows 2003</title> <author>Mike</author> <price>50.00</price> </book> <book category="SOFTWARE"> <title>VS.NET2003</title> <author>Mike</author> <price>90.00</price> </book> </bookstore> ' select@myDoc.query('/bookstore/book/title') ----------------------------- select@myDoc.query('/bookstore/book[price>30]') select@myDoc.query('for $x in /bookstore/book where $x/price>30 return $x/title') select@myDoc.query('for $x in /bookstore/book/title order by $x return $x') select@myDoc.query('for $x in /bookstore/book/title return <li>{data($x)}</li>') select@myDoc.query('for $x in /bookstore/book/title order by $x return <li>{data($x)}</li>') value查询 declare@myDoc xml set@myDoc=' <bookstore> <book category="COOKING" >)