我需要使用SSMS从SQL Server 2008中的多个表导出数据。我不想使用本地的“导出数据向导”,而是想使用查询。这意味着我不能使用“sqlcmd”或“bcp”。
如何使用查询从SQL Server 2008中导出数据?
我需要它以逗号分隔,并使用双引号作为文本限定符。
非常感谢您的任何指导/帮助。
如何使用查询从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
"
。 - swasheck使用SQL查询无法创建文本文件。SQL只能用于从数据库获取、解析、更新等数据操作,若要将数据写入文件,需要使用系统可执行文件或dll文件。
您需要使用SSIS生成csv文件,而不是使用SSMS导出结果。是否有特定原因要使用SSMS导出结果到csv?
如果使用SSIS,则可以创建一个包来导出信息,然后安排作业定期运行该包。
导出到一个已存在的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
干杯!
你可以编写一个带有插入语句的选择查询。
例如: 从SourceTable中选择 'insert into TargetTable values(id, name) values ('''+ id +''','''+ name +''')'