在SQL Server 2008的存储过程中导出为CSV
我有一个存储过程,它创建一个临时表,并有大量数据。我试过以下两种方法。我可以使用“导出”实用程序或“结果到文件”设置手动执行此操作,但我希望将代码嵌入到存储过程中,以便安排批处理作业并将其忘记。此外,出于许多原因,我不想使用SSI 我发现的流行解决方案有:在SQL Server 2008的存储过程中导出为CSV,sql,sql-server,sql-server-2008,csv,Sql,Sql Server,Sql Server 2008,Csv,我有一个存储过程,它创建一个临时表,并有大量数据。我试过以下两种方法。我可以使用“导出”实用程序或“结果到文件”设置手动执行此操作,但我希望将代码嵌入到存储过程中,以便安排批处理作业并将其忘记。此外,出于许多原因,我不想使用SSI 我发现的流行解决方案有: bcp "select * from WHSE.Customer" queryout ExcelTest.csv -t, -c -S . -d Server1 -T SQLCMD -S . -d Server1 -Q “"select *
bcp "select * from WHSE.Customer" queryout ExcelTest.csv -t, -c -S . -d Server1 -T
SQLCMD -S . -d Server1 -Q “"select * from WHSE.Customer sp” -s “,” -o “d:\result.csv
在BCP中,它在BCP上得到一个错误,如果我在前面添加了一个EXECUTE
,我会得到一个错误:
“queryout”附近的语法不正确
SQLCMD
也一样,除了SQLCMD
或-S
上的错误,这取决于我是否使用Execute
命令
这看起来应该很简单,我已经找到了很多答案,但没有一个真正有效。它似乎应该是世界上最基本的东西,SELECT*INTO MYFILE.CSV FROM MYTABLE
您看到“queryout附近的语法不正确”。这是一条T-SQL错误消息。正如您所说的,您是在存储过程中运行它的。BCP和SQLCMD都是命令行实用程序,这意味着您必须在命令(DOS)提示符下运行它们
有一种直接从SQL执行的方法,但您必须使用:xp\u cmdshell
这是一篇关于如何使用它的好文章:
这是为SQL Server 2005编写的,但也适用于2008。您收到的确切错误消息是什么?queryout附近的语法不正确。“S”附近的语法不正确。谢谢Joreon,我确信这会起作用,因为现在我得到了链接中列出的所有错误。糟糕的是,我的DBA不会给我访问该命令的权限:(返回ssis