一次性導出資料給他部門分析,SSIS 過重、導入導出精靈 Bug 多、**BCP (Bulk Copy Program)** 命令行工具最輕量高效。
SQL Server 2005+ 原生支援 FOR XML 將關係結果集轉 XML。
BCP "SELECT TOP 30 [bom_no], [LEVEL]
FROM [sqladmin].[dbo].[bom]
FOR XML PATH, TYPE, ELEMENTS, ROOT('RegionSales')"
QUERYOUT "d:\temp\test.XML" -c -t -T -S localhost
參數說明:
FOR XML PATH, TYPE, ELEMENTS, ROOT('RegionSales'):生成巢狀元素格式,根節點 RegionSalesQUERYOUT:查詢結果導出-c:字元模式 (而非原生二進制)-t:欄位分隔符 (這裡無實際分隔,XML 結構自描述)-T:信任連線 (Windows 驗證)-S localhost:目標伺服器SQL Server 2016 前無原生 JSON 輸出。常用替代方案:
JSON.stringify/Jackson/Gson/Json.NET 輸出FOR JSON AUTO/PATH
# PowerShell 3.0+ 內建 ConvertTo-Json
Invoke-Sqlcmd -Query "SELECT TOP 30 bom_no, LEVEL FROM sqladmin.dbo.bom" `
-ServerInstance localhost | ConvertTo-Json | Out-File d:\temp\test.json -Encoding UTF8
FOR JSONInvoke-Sqlcmd + ConvertTo-Json 適合排程任務