[英]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.