將 XML 文件導入 SQL Server 2000,並非單一路徑。依據「是否需將節點/屬性拆解至關聯資料表」、「XML 複雜度」與「效能要求」,微軟官方提供三種截然不同的解決方案。本文為您梳理適用場景與核心工具。
適用場景:需將 XML 實體與屬性映射至關聯資料表,且資料量大、追求極致匯入速度。
SQLXMLBulkLoad 物件(隨 SQLXML 3.0 SP1 免費下載提供)。適用場景:不需拆解 XML 結構,只需將完整 XML 文件以二進位或文字形式存入 TEXT、NTEXT 或 IMAGE 欄位。
MSSQL\Binn\textcopy.exe。xp_cmdshell 或應用程式呼叫,參數指定伺服器、資料庫、資料表、欄位、檔案路徑與 WHERE 條件。適用場景:XML 結構極簡單(扁平化、無深層巢狀),且需在匯入過程中進行自訂邏輯轉換(資料清洗、查表、計算衍生欄位)。
<、> 標籤,提取實體、屬性與值。| 需求 | 推薦方案 | 關鍵工具/技術 |
|---|---|---|
| 結構化拆解 + 高效能 + 大數據量 | 方案一 | SQLXML Bulk Load + XSD Mapping Schema |
| 整份文件存檔 (BLOB/TEXT) | 方案二 | textcopy.exe + xp_cmdshell |
| 簡單 XML + 需自訂轉換邏輯 | 方案三 | DTS + ActiveX Script 字串剖析 |
現代系統若仍運作於 SQL Server 2000,方案一為架構上最正規之選;若已升級至較新版本,請改用 OPENROWSET(BULK...)、XML Bulk Load 的後續版本或 SSIS XML 來源元件。