簡體   English   中英

使用ssms將數據從sql server導出為CSV

[英]exporting data from sql server into a CSV using ssms

我需要使用SSMS從SQL Server 2008中的幾個表導出數據。 不想使用本地數據導出向導 ; 我想改用查詢。 這意味着我不能使用sqlcmdbcp

如何使用查詢從SQL Server 2008導出數據?

我需要它以逗號分隔並雙引號作為文本限定符。

非常感謝任何指導/幫助。

您可以輕松地從SSMS創建CSV輸出,但它不會進行引用,因此您可能希望在步驟6中選擇類似制表符分隔的格式:

  1. 打開一個新的查詢窗口。
  2. 創建SQL查詢。
  3. 在查詢窗口中單擊鼠標右鍵。
  4. 選擇查詢選項...
  5. 選擇結果下的文字。
  6. 更改輸出格式:以逗號分隔。
  7. 將每列中顯示的最大字符數更改為8000或適當的值。
  8. 單擊確定。
  9. 在查詢窗口中單擊鼠標右鍵。
  10. 選擇結果到和結果到文件。
  11. 執行您的查詢。
  12. 選擇文件名和位置。
  13. 單擊保存。

您可以運行xp_cmdshell來運行bcp操作:

use [master];

declare @sql nvarchar(4000)
select @sql = 'bcp "select * from sys.columns" queryout c:\file.csv -c -t, -T -S'+ @@servername
exec xp_cmdshell @sql

當然,您必須弄清楚如何格式化限定符(可能通過格式文件

編輯:

您的源查詢需要是以下內容:

SELECT IntValue + '"' + CharValue + '"' FROM TABLE

此外,您可能需要啟用此功能

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
GO

無法使用SQL查詢創建文本文件。 SQL僅用於從數據庫中獲取,分析,更新(等)數據。 您需要有sytem可執行文件/ dll才能寫入文件。
您是否有特定原因要使用SSMS將生成的結果導出到csv? 為什么不使用SSIS生成csv的結果?

如果使用SSIS執行此操作,則創建一個包以導出信息,然后將作業中的包計划為在您希望的時間運行。

要導出到EXISTING excel文件:

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

這是過時的,但我相信它仍然有效。

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

干杯!

你可以用insert插入一個精選的spiced。

例如:從SourceTable中選擇'插入TargetTable值(id,name)值('''+ id +''','''+ name +''')'

暫無
暫無

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

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