2009-04-28 94 views
62

我想將某些SQL Server 2005數據導出爲CSV格式(用引號將逗號分隔)。我可以想到很多複雜的方法來做到這一點,但我想要做到這一點正確的方式。我已經看過bcp,但我無法弄清楚如何在字段周圍加引號(除了將它們連接到字段值,這很醜陋)。我想我可以用sqlcmd和-o來做,但是出於同樣的原因,這看起來很醜。如何將SQL Server 2005查詢導出爲CSV

有沒有bcp的方式來做到這一點?

有沒有合理的sqlcmd方法來做到這一點?

在管理工作室中內置了一些很棒的簡單實用程序,我只能忽略它?

+0

另請參閱:http://stackoverflow.com/questions/425379/how-to-export-data-as-csv-format-from-sql-server-using-sqlcmd – 2010-03-11 16:52:40

回答

62

在Management Studio中,選擇數據庫,右鍵單擊並選擇Tasks->Export Data。您將看到可以導出到CSV,Excel等不同格式的選項。

您也可以從查詢窗口運行查詢並將結果保存爲CSV。

+0

我知道這是簡單的那樣的事情。謝謝。 – 2009-04-28 19:56:51

+25

當您將結果保存爲CSV時,它似乎無法正確地在varchar字段中轉義逗號 – 2012-02-21 16:46:49

+2

這是2005年的工作嗎?我無法獲得文件類型的選項 – 2013-01-04 09:47:19

5

對於即席查詢:

顯示結果網格模式(CTRL + d),運行查詢,單擊左上角框在結果網格中,粘貼到Excel,保存爲CSV。您可以直接粘貼到一個文本文件(不能現在就試試)

或「結果到文件」有自己的選擇太對CSV

或「結果到文本」用逗號分隔符

工具..選項和查詢..選項(我認爲,無法檢查)的所有設置太

+0

這就是我要發佈的信息 – DForck42 2009-04-28 20:03:42

+3

這對於大型結果集......內存異常不適用。 :( – CodeRedick 2012-02-08 16:24:15

44

在管理工作室,設置查詢選項輸出到文件,並在選項 - >查詢結果集輸出到文件以逗號作爲分隔符輸出。

+0

不知道你能做到這一點,謝謝。 – 2009-04-28 19:57:24

9

是的,在Management Studio中有一個非常簡單的實用程序,如果您只是希望將查詢結果保存爲CSV。

右鍵單擊結果集,選擇「Save Results As」。默認文件類型是CSV。

6

如果它符合您的要求,您可以在命令行上使用bcp,如果您經常這樣做或想將其構建到生產過程中。

Here's a link描述了配置。

+0

這回答了我關於bcp的問題(它和我想象的一樣醜陋;沒有人說bcp不是難看的)謝謝 – 2009-04-28 19:59:28

31

如果你不能使用Management Studio,我使用sqlcmd。

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s"," 

這是從命令行執行它的快速方式。

2

SET NOCOUNT上

的報價都在那裏,用-w2000保持每行一個行。

2

在SQL 2005,這是簡單的: 1.打開SQL Server Management Studio並 2.查詢 - >結果複製你需要到TSQL,SQL語句如exec sp_whatever網格 3。突出顯示sql語句並運行它 4.突出顯示數據結果(左鍵單擊結果網格的左上角區域) 5.現在右鍵單擊並選擇Save Results As 6.在Save as類型中選擇CSV,輸入一個文件名,選擇一個位置並點擊保存。

簡單!

25

我必須做一個比死勁說讓它在SQL Server Management Studio 2005中轉到適當加引號

Tools->Options->Query Results->Sql Server->Results To Grid

把支票旁邊的選項件事:

Quote strings containing list separators when saving .csv results

注:上述方法不適用於SSMS 2005 Express的工作!據我所知,當使用SSMS 2005 Express將結果導出到.csv時,沒有辦法引用這些字段。

1

在SQL Server 2012 - 管理工作室:

解決方案1:

執行查詢

右鍵單擊結果窗口

選擇結果另存爲從菜單

選擇CSV

解決方案2:

數據庫右擊

選擇任務,導出數據

選擇源DB

選擇目的地:平面文件目標

選擇一個文件名

選擇格式 - 分隔

選擇一個表或編寫一個查詢

選擇一個列分隔符

注: 你可以選擇一個文本限定符將分隔文本字段,如報價。

如果您有一個帶有逗號的字段,請不要使用逗號作爲分隔符,因爲它不會轉義逗號。您可以選擇列分隔符,如垂直條:|而不是逗號或製表符。否則,編寫一個查詢來轉義您的逗號或分隔您的varchar字段。

您需要使用的轉義字符或文本限定符取決於您的要求。

0

SSIS是一個很好的方法來做到這一點。這可以使用SQL Server代理作業進行調度。

1

我認爲這樣做最簡單的方法是從Excel。

  1. 打開一個新的Excel文件。
  2. 單擊數據選項卡上
  3. 選擇其他數據源
  4. 選擇SQL Server
  5. 輸入您的服務器名稱,數據庫,表名等

如果您有Excel的一個較新版本您可以從PowerPivot中提取數據,然後將這些數據插入表中。