|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于insert操作,只需要把event_type改成DELETE_ROWS_EVENT;对于delete操作,改成WRITE_ROWS_EVENTserver|xmlSQLServer和XML的集成
BUILDER.COM
Wednesday,June19200210:11AM
XML可谓最新的数据存储办理计划了。XML比拟HTML赐与了Web开辟职员更年夜的编程天真性。这类新手艺驱动开辟机构实验把XML同本人的产物集成起来。微软就是接纳云云举动的前驱者。微软公司在开辟Internet产物的时分一度渐渐腾腾,如今可就分歧了。比来一名微软公司的初级人员就如许说:“你要给我们一刀,伤口里出来的尽是XML。”大概描述得有点太过,但现实的确是如许的:微软的几近一切产物中都能看到XML的身影。举个例子:微软是怎样在其SQLServer产物线中集成XML的呢?上面我们就来看看关头的FORXML子句。
以XML的名义猎取信息
SQLServer和XML之间的集成主要一点就是依据SQL数据创立XML文件。XML文件的机关其实不庞大,用复杂的剧本和ADO纪录集就能够轻松发生。这个义务固然不算贫苦,但开辟职员却必要针对他们从服务器猎取的了局汇合发生分歧的剧本,大概编写更加庞大的通用剧本。SELECT语句则由此而装备了新的FORXML子句。
该子句的语法以下所示:
[FOR{XML{RAW|AUTO|EXPLICIT}
[,XMLDATA]
[,ELEMENTS]
[,BINARYBASE64]}]
FORXML子句的XML形式由三种参数值暗示:RAW、AUTO大概EXPLICIT。形式决意了却果XML的情势和构成。上面我们就更深切些地经由过程以下示例懂得以上各个XML选项。
RAW示例
我们实行以下的SQL语句:
SETROWCOUNT3
SELECTOrders.OrderID,Orders.OrderDate,ProductID
FROMOrders,[OrderDetails]
WHEREOrders.OrderID=[OrderDetails].OrderID
ORDERBYOrders.OrderID
FORXMLRAW
实行后发生的了局以下:
<rowOrderID="10248"OrderDate="1996-07-04T00:00:00"ProductID="11"/>
<rowOrderID="10248"OrderDate="1996-07-04T00:00:00"ProductID="42"/>
<rowOrderID="10248"OrderDate="1996-07-04T00:00:00"ProductID="72"/>
AUTO示例
我们实行以下的SQL语句:
‘了局限定为3笔记录。
SETROWCOUNT3
SELECTOrders.OrderID,Orders.OrderDate,ProductID
FROMOrders,[OrderDetails]
WHEREOrders.OrderID=[OrderDetails].OrderID
ORDERBYOrders.OrderID
FORXMLAUTO
发生的了局以下所示:
<OrdersOrderID="10248"OrderDate="1996-07-04T00:00:00">
<Order_x0020_DetailsProductID="11"/>
<Order_x0020_DetailsProductID="42"/>
<Order_x0020_DetailsProductID="72"/>
</Orders>
EXPLICIT示例
Explicit形式赐与查询编程职员对发生XML的完整把持才能。但是这类把持力度却要价不菲:你得编写每查询以便SQL语句能包括XML信息。
有关的语法很庞大,并且超越了本文的会商局限。[,XMLDATA][,ELEMENTS][,BINARYBASE64]是响应的可选参数。
如果WHERE子句的查询条件里使用比较操作符LIKE和REGEXP,MySQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKEabc%‘,MySQL将使用索引;如果查询条件是LIKE%abc’,MySQL将不使用索引。 |
|