Sql-Server-2008
將選擇結果寫入 csv 文件
我們需要將 SELECT 查詢結果寫入 csv 文件。如何在 SQL Server 2008 r2 中使用 T-SQL 來完成?我知道它可以在 SSIS 中完成,但由於某些原因,我們沒有這個選項。
我嘗試使用下面文章中建議的 proc,但是當我執行 proc 時,SQL 抱怨無法執行在此 proc 中呼叫的 sys.sp_OACreate 和 sys.sp_OADestroy。
您知道我們如何打開這些組件或知道使用 T-SQL 寫入文件的更好方法嗎?
提前致謝。
使用BCP 實用程序
bcp "SELECT Col1,Col2,Col3 FROM MyDatabase.dbo.MyTable" queryout "D:\MyTable.csv" -c -t , -S SERVERNAME -T
該
-c
參數指定c字元輸出,而不是 SQL 的本機二進制格式;這預設為製表符分隔值,但-t ,
將欄位t終止符更改為逗號。-T
指定 Windows 身份驗證(“可信連接”),否則使用-U MyUserName -P MyPassword
.預設情況下,這不會導出列標題。您需要對標題使用 UNION ALL
要麼
使用 SQLCMD
SQLCMD -S SERVERNAME -E -Q "SELECT Col1,Col2,Col3 FROM MyDatabase.dbo.MyTable" -s "," -o "D:\MyData.csv"
要麼
使用 Powershell
這是一篇文章的連結。如果您最終使用它,您可能需要附加
-notype
afterExport-Csv $extractFile
以刪除輸出文件中不必要的列。