我需要將數據從Sql Server 2008導出到Excel/CSV文件。OPENROWSET vs BCP
我有兩個選項是:
- OPENROWSET
- BCP
這將是更好的選擇,如果數據量較大,安全性的關注?
我需要將數據從Sql Server 2008導出到Excel/CSV文件。OPENROWSET vs BCP
我有兩個選項是:
這將是更好的選擇,如果數據量較大,安全性的關注?
對這裏的類似問題有一些很好的評論:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=147861。
我傾向於BULK INSERT,但實際上最好的做法是嘗試兩種方式。然後,您將能夠比較哪個更快,並且您將更好地瞭解哪些更適合您的安全問題,因爲您會知道必須解決哪些安全問題才能使其工作。
編輯:您正試圖導出,所以顯然BULK INSERT不起作用。 BCP將是我相信的更具性能的選擇,除此之外,如果您想進行批量出口,我認爲這是您的唯一選擇。我很確定OPENROWSET只允許批量導入到sql中,但不允許導出。
Downvoter謹慎解釋?我總是願意學習我的錯誤。 –
OPENROWSET也可用於導出數據,我個人非常喜歡這種方法:http://www.mssqltips.com/sqlservertip/1202/export-data-from-sql-server-to-excel/ ...但是這種情況下,您不能將它用於CSV文件,因爲它沒有「驅動程序驅動」格式 – MAXE
通過BCP你的意思使用BULK INSERT語句,使用命令行工具BCP,或使用SqlBulkCopy的API? –
還取決於您的安全問題。 OPENROWSET在默認情況下被阻止,您需要先使用sp_configure啓用,然後才能使用它。 –
我的意思是使用xp_cmdshell的BCP。並且兩者都默認被阻止。爲了安全,我的意思是對於BCP,我們需要本地系統帳戶來執行命令。 –