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

SQL Server 數據導出 Excel 存儲過程:含列名、自建文件/表、ADO/OLEDB 雙引擎

     編輯:關於SqlServer

一條存儲過程實現查詢結果導出真正的 .xls 文件,含列標題、自動創建文件/工作表、類型映射、雙引擎兼容(舊版 Jet / 新版 ACE)。

核心參數

  • @sqlstr:查詢語句(含 ORDER BY 時需加 TOP 100 PERCENT)
  • @path:目標目錄
  • @fname:文件名(默認 temp.xls)
  • @sheetname:工作表名(默認文件名)

關鍵技術點

  1. 文件存在性檢測:xp_fileexist 分支選擇連接字符串
  2. 臨時表推導結構:SELECT * INTO ##tmp_guid FROM (...) a 獲取列名/類型
  3. 動態建表 DDL:按系統類型映射 Excel 類型(Text/Int/DateTime/Money)
  4. ADO/OLEDB 寫入:sp_OA* 系列創建 Connection → Execute DDL → OPENROWSET 批量 INSERT
  5. 類型過濾:排除 image/text/xml/varbinary 等不支持類型

調用示例

EXEC p_exporttb
  @sqlstr = 'SELECT * FROM 區域資料',
  @path = 'C:\Export\',
  @fname = 'AreaData.xls',
  @sheetname = '區域資料'

遷移建議:SQL Server 2016+ 推薦

  • sp_execute_external_script + Python pandas.DataFrame.to_excel
  • 或 SSIS / Azure Data Factory / Power Automate 等 ETL 工具
  • 避免在生產庫啟用 Ole Automation Procedures(sp_OA* 依賴項),安全風險高
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved