[英]exporting data from sql server into a CSV using ssms
我需要使用SSMS從SQL Server 2008中的幾個表導出數據。 我不想使用本地數據導出向導 ; 我想改用查詢。 這意味着我不能使用sqlcmd
或bcp
。
如何使用查詢從SQL Server 2008導出數據?
我需要它以逗號分隔並雙引號作為文本限定符。
非常感謝任何指導/幫助。
您可以輕松地從SSMS創建CSV輸出,但它不會進行引用,因此您可能希望在步驟6中選擇類似制表符分隔的格式:
您可以運行xp_cmdshell
來運行bcp
操作:
use [master];
declare @sql nvarchar(4000)
select @sql = 'bcp "select * from sys.columns" queryout c:\file.csv -c -t, -T -S'+ @@servername
exec xp_cmdshell @sql
當然,您必須弄清楚如何格式化限定符(可能通過格式文件 )
編輯:
您的源查詢需要是以下內容:
SELECT IntValue + '"' + CharValue + '"' FROM TABLE
此外,您可能需要啟用此功能
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
GO
無法使用SQL查詢創建文本文件。 SQL僅用於從數據庫中獲取,分析,更新(等)數據。 您需要有sytem可執行文件/ dll才能寫入文件。
您是否有特定原因要使用SSMS將生成的結果導出到csv? 為什么不使用SSIS生成csv的結果?
如果使用SSIS執行此操作,則創建一個包以導出信息,然后將作業中的包計划為在您希望的時間運行。
要導出到EXISTING excel文件:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;',
'SELECT * FROM [SheetName$]') select * from SQLServerTable
這是過時的,但我相信它仍然有效。
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926
干杯!
你可以用insert插入一個精選的spiced。
例如:從SourceTable中選擇'插入TargetTable值(id,name)值('''+ id +''','''+ name +''')'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.