首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 原生 XML 支援全景:HTTP 存取、範本查詢、FOR XML、OPENXML 四大支柱

     編輯:關於SqlServer

SQL Server 2000 內建 XML 支援,不儲存 XML 檔案,而是提供關聯資料與 XML 雙向轉換介面。SQLXML 釋出擴充功能。四大核心支柱:

1. HTTP 直接存取

  • 建立 IIS 虛擬目錄(Configure SQL XML Support in IIS),對應特定資料庫。
  • URL 查詢:/Northwind?sql=SELECT * FROM Shippers FOR XML AUTO,ELEMENTS &root=Shippers
  • 優點:瀏覽器/Web App 直連資料庫,無需中介層。
  • 缺點:複雜查詢 URL 難讀、SQL 碼外露(安全風險)。

2. 範本查詢

  • 將 SQL 包裝在 XML 檔案(GetShippers.xml),存放於伺服器虛擬目錄下。
  • URL 呼叫:/Northwind/templates/GetShippers.xml
  • 支援參數傳遞、XSLT 樣式表轉 HTML、快取機制提升效能、隱藏 SQL 碼(較安全)。

3. FOR XML 子句

  • FOR XML AUTO:依聯結巢狀自動產生階層。
  • FOR XML RAW:每列一個 <row> 元素,屬性化欄位。
  • FOR XML EXPLICIT:完全控制 XML 結構(複雜但強大)。
  • FOR XML PATH (SQL 2005+):簡潔路徑語法定義結構。

4. OPENXML 函數

  • 將 XML 文件「切碎」載入關聯資料表(反向操作)。
  • 流程:sp_xml_preparedocument → OPENXML 查詢 → sp_xml_removedocument。
  • 適用:大量 XML 匯入、Web Service 回應解析。

XML 支援架構圖

選擇指南

場景建議技術
簡單查詢、原型開發HTTP + FOR XML AUTO
生產 Web 應用、安全性要求範本查詢 + XSLT
複雜 XML 結構產出FOR XML EXPLICIT / PATH
XML 匯入資料庫OPENXML / XML Bulk Load

總結

SQL Server XML 支援以「關聯為核心、XML 為介面」為設計哲學。掌握四大支柱適用場景,能在不引入額外中介層的前提下,實現高效的 XML 整合方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved