SQL Server 2000 消除 XML 與關聯資料的阻抗失配。本文系統講解 FOR XML 三模式(RAW、AUTO、EXPLICIT)將查詢結果產生為 XML、XMLDATA/ELEMENTS/BINARY BASE64 選項控制輸出格式;以及 OPENXML 配合 sp_xml_preparedocument/sp_xml_removedocument 將 XML 文件剖析為資料列集寫入資料表,並附圖解記憶體文件指標流程。
| 模式 | 結構 | ELEMENTS 選項效果 |
|---|---|---|
| RAW | <row col="val"/> | 欄位變為子元素 <row><col>val</col></row> |
| AUTO | 依表名巢狀 | 同左,屬性→子元素 |
| EXPLICIT | 完全自訂 | 需手工指定元素/屬性 |
sp_xml_preparedocument @hdoc OUTPUT, @xml:剖析 XML,傳回文件控制代碼(佔用記憶體)。SELECT * FROM OPENXML(@hdoc, '/root/row', 2) WITH (Col1 INT, Col2 VARCHAR(50)):XPath 定位節點,WITH 定義結果結構,2 表示屬性對應。sp_xml_removedocument @hdoc:釋放記憶體,必須呼叫避免洩漏。

前端收單 → XML 文件 → OPENXML 解析寫入 Orders/OrderDetails → 回傳訂單號。確保安全性與標準化資料交換。