sql server 2008中有關xml的新功能
1 導言
microsoft 在microsoftsqlserver 2000中推出了與xml相關的功能以及transact-sql 關鍵字for xml和openxml ,這使得開發人員可以編寫transact-sql**來獲取xml流形式的查詢結果,並將乙個xml文件分割成乙個rowset。sql server 2005顯著的擴充套件了這些xml功能,推出了乙個支援xsd schema驗證、基於xquery的操作和xml索引的本地的xml 資料型別。sql server 2008建立在之前版本的xml功能基礎之上,做了改進來迎接客戶在儲存和操縱資料庫中的xml資料時所面臨的挑戰。
2 sql server xml 功能的發展歷程
sqlserver的xml功能隨著從sql server2000版本以來的每乙個版本而不斷發展。在我們檢查sql server 2008中的改進之前,通過之前的版本來總結xml功能的發展歷程可能會比較有用。
2.1 sql server 2000中的xml功能
在sql server 2000中,microsoft 推出了transact-sql 關鍵字forxml和openxml。for xml 是對select語句的擴充套件,它返回如下面的示例所示的xml流式的查詢結果。
select productid, productname
from products product
forxmlauto
這個查詢返回乙個如下面示例所示的xml片斷:
openxml功能執行與for xml 條件子句相反的功能,它建立乙個xml文件的rowset ,如下面的示例所示:
declare @doc nvarchar(1000)
set @doc = '
'declare @xmldoc integer
exec sp_xml_preparedocument @xmldoc output, @doc
select * from
openxml (@xmldoc, 'order/item', 1)
with
(orderid integer '../@orderid',
productid integer,
quantity integer)
exec sp_xml_removedocument @xmldoc
注意用sp_xml_preparedocument和sp_xml_removedocument 儲存過程來建立xml文件的節點樹的乙個記憶體展示的用法。這個transact-sql**返回下面的rowset。
orderid
productid
quantity
1011
1
2
1011
2
1
SqlServer 2008 中Merge的應用
簡介 sqlserver 2008中新增加了merge這個dml關鍵字,msdn對於merge的解釋 根據與源表聯結的結果,對目標表執行insert,update,delete操作.例如 根據目標表與源表的差異,在目標表中執行執行insert,update,delete操作,實現兩個表的同步.語法 ...
Sql Server 2008 中Merge的用法
本文摘自其它 sql server 2008中的merge語句能做很多事情,它的功能是根據源表對目標表執行插入 更新或刪除操作。最典型的應用就是進行兩個表的同步。下面通過乙個簡單示例來演示merge語句的使用方法,假設資料庫中有兩個表product及productnew,我們的任務是將product...
SQL Server 2008中SQL增強功能點
在sql server 2008中新增功能,可以使用單個insert命令插入多行 舉例 create table dbo test2 編號 int null,姓名 varchar 20 null,一季度 int null,二季度 int null,三季度 int null,四季度 int null ...