我需要将表格的内容导出为文件CSV。
我尝试使用存储过程中xp_cmdshell
的执行,但它不起作用,因为此组件作为此服务器的安全配置的一部分被关闭。
您是否知道其他人从存储过程中编写文件的方法?
答案 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