SQL Server 2008中有關XML的新功能

2021-04-22 06:24:43 字數 1506 閱讀 5491

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 ...