簡體   English   中英

在SQL Server 2008中的存儲過程中導出為CSV

[英]Export to CSV in stored procedure in SQL Server 2008

我有一個存儲過程,可以創建一個臨時表並包含大量數據。 我已經嘗試了以下兩種方法。 我可以使用導出實用程序手動執行此操作,也可以將結果保存到文件設置中,但是我想將代碼嵌入到存儲過程中,這樣就可以安排批處理作業而忘記了。 同樣,出於多種原因,我也不希望我們使用SSIS。

我發現的流行解決方案是:

bcp "select * from WHSE.Customer" queryout ExcelTest.csv -t, -c -S . -d Server1 -T

SQLCMD -S . -d Server1 -Q “"select * from WHSE.Customer sp” -s “,” -o “d:\result.csv

在BCP中,它會在BCP上出現錯誤,如果我在前面添加了EXECUTE ,則會出現錯誤:

'queryout'附近的語法不正確。

與這同樣SQLCMD除了在錯誤SQLCMD-S取決於如果我使用的Execute命令。

這似乎應該很簡單,而且我已經找到了答案的噸,但實際上沒有任何作用。 似乎應該是世界上最基本的東西,基本上是SELECT * INTO MYFILE.CSV FROM MYTABLE

您看到“查詢輸出附近的語法不正確”。 那是一條T-SQL錯誤消息。 正如您所說,您是在存儲過程中運行它。 BCP和SQLCMD都是命令行實用程序,這意味着您必須從命令(DOS)提示符下運行它們。

有一種方法可以直接從SQL執行,但是您必須使用: xp_cmdshell這是一篇有關如何使用它的好文章:

https://www.mssqltips.com/sqlservertip/1633/simple-way-to-export-sql-server-data-to-text-files/

這是為SQL Server 2005編寫的,但也應在2008上運行。

暫無
暫無

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

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