簡體   English   中英

使用 OPENROWSET 將 SQL Server 導出到 Excel

[英]SQL Server export to Excel with OPENROWSET

我使用以下語句成功導出到 excel:

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=C:\template.xls;', 
'SELECT * FROM [SheetName$]') 
select * from myTable

是否有任何標准方法可以使用此模板為 Excel 工作表指定一個新名稱,以便模板永遠不會被寫入,或者我是否必須想出一些解決方法?

在人們的體驗中,做到這一點的最佳方式是什么?

您必須使用動態 SQL。 OPENROWSET等只允許文字作為參數。

DECLARE @myfile varchar(800)

SET @myfile = 'C:\template.xls'

EXEC ('
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
''Excel 8.0;Database=' + @myfile + ';'', 
''SELECT * FROM [SheetName$]'') 
select * from myTable
')

請記住:路徑是相對於 SQL Server 運行的位置

您不能先復制模板,然后將副本的文件名傳遞到 OPENROWSET 中嗎?

您可以在一個位置使用模板,在其他位置使用數據文件。 當您運行該腳本時,它將刪除舊文件並生成一個新數據文件。

 EXEC xp_cmdshell 'del D:\template.xls'
 EXEC xp_cmdshell 'copy C:\template.xls D:\template.xls'

 INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
 'Excel 8.0;Database=D:\template.xls;', 
 'SELECT * FROM [SheetName$]') 
  SELECT * FROM myTable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM