SQL Server 2008中有關XML的新功能(2)_Mssql數(shù)據(jù)庫教程
推薦:在SQL Server實例之間傳輸?shù)卿浐兔艽a概要 在將數(shù)據(jù)庫移動到新服務器后,用戶可能無法登錄到新服務器。相反,他們會收到下面的錯誤消息: Msg 18456, Level 16, State 1 Login failed for user '%ls'. 您必須將登錄和密碼傳
你可以使用xml 數(shù)據(jù)類型來存儲數(shù)據(jù)庫中的文檔或數(shù)據(jù)。列和變量可以用于非類型化的XML或類型化的XML,后者是對一個XML Schema 定義(XML Schema Definition ,XSD)的schema有效。如果要為數(shù)據(jù)驗證進行定義,開發(fā)人員可以使用CREATE XML SCHEMA COLLECTION 語句,如下面的示例所示:
在創(chuàng)建了一個schema 集合后,你可以通過參照schema集合將一個xml變量或列與它所包含的schema 聲明結合起來,如下面的示例所示:
CREATE TABLE SalesOrders
(OrderID integer PRIMARY KEY,
OrderDate datetime,
CustomerID integer,
OrderNotes xml)
類型化XML在插入值或更新值時對關聯(lián)的schema 集合的聲明進行驗證,這使得可以為了遵從性檢查或兼容性原因而加強關于XML數(shù)據(jù)的結構的業(yè)務規(guī)則。
xml 數(shù)據(jù)類型還提供了一些方法,使得你可以使用它們來查詢和操縱實例的XML數(shù)據(jù)。例如,你可以使用query 方法來查詢xml 數(shù)據(jù)類型的一個實例的XML數(shù)據(jù),如下面的示例所示:
declare @x xml
set @x=
'<Invoices>
<Invoice>
<Customer>Kim Abercrombie</Customer>
<Items>
<Item ProductID="2" Price="1.99" Quantity="1" />
<Item ProductID="3" Price="2.99" Quantity="2" />
<Item ProductID="5" Price="1.99" Quantity="1" />
</Items>
</Invoice>
<Invoice>
<Customer>Margaret Smith</Customer>
<Items>
<Item ProductID="2" Price="1.99" Quantity="1"/>
</Items>
</Invoice>
</Invoices>'
SELECT @x.query(
'<CustomerList>
{
for $invoice in /Invoices/Invoice
return $invoice/Customer
}
</CustomerList>')
這個例子中的查詢使用了一個XQuery 表達式,這個表達式找出文檔中的每一個Invoice 元素,并返回一個包含每一個Invoice 元素的Customer元素的XML文檔,如下面的示例所示:
<CustomerList>
<Customer>Kim Abercrombie</Customer>
<Customer>Margaret Smith</Customer>
</CustomerList>
SQL Server 2005中的另外一個顯著的與XML相關的特性是對XML索引的支持。你可以為類型化xml的列創(chuàng)建首要和次要的XML索引來增強XML查詢性能,一個首要的XML索引是一個XML實例的所有節(jié)點的部分表示,查詢處理器可以使用它來快速的找到一個XML值中的節(jié)點。在你創(chuàng)建了一個首要的XML索引之后,你可以創(chuàng)建次要的XML索引來提高特定的查詢類型的性能。下面的示例創(chuàng)建了一個首要的XML索引,和一個PATH類型的次要XML索引,它可以提高使用XPath表達式來標識一個XML實例中的節(jié)點的查詢的性能。
CREATEPRIMARYXMLINDEXidx_xml_Notes
ONSalesOrders(Notes)
GO
CREATEXMLINDEXidx_xml_Path_Notes
ONSalesOrders(Notes)
USINGXMLINDEXidx_xml_Notes
FORPATH
GO
分享:也談如何縮小SQL SERVER日志文件前幾天也碰到日志文件過大的問題,數(shù)據(jù)庫實際大小為600M, 日志文件實際大小為33M, 但日志文件占用空間為2.8G! 試了多種方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都沒辦法將文件縮小。無論
- sql 語句練習與答案
- 深入C++ string.find()函數(shù)的用法總結
- SQL Server中刪除重復數(shù)據(jù)的幾個方法
- sql刪除重復數(shù)據(jù)的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-SQL Server 2008中有關XML的新功能(2)
。