不使用xp_cmdshell将SQL Server表的内容导出为CSV

时间:2017-07-05 07:37:32

标签: sql-server csv tsql stored-procedures export-to-csv

我需要将表格的内容导出为文件CSV。

我尝试使用存储过程中xp_cmdshell的执行,但它不起作用,因为此组件作为此服务器的安全配置的一部分被关闭。

您是否知道其他人从存储过程中编写文件的方法?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下几种方法:

1。使用BCP

语法:

bcp "SELECT * FROM Database.dbo.input" queryout C:\output.csv -c -t',' -T -S .\SQLEXPRESS

microsoft document:BCP Utility

2。第二种方法(对于excel,但也适用于csv):

Insert into OPENROWSET
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;',
'SELECT * FROM [SheetName$]') select * from SQLServerTable

为此,您需要通过以下命令启用adhoc分布式查询:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

您可能会遇到链接服务器错误。所以你应该参考:this stack overflow solution