[英]Export to CSV in stored procedure in SQL Server 2008
我有一个存储过程,可以创建一个临时表并包含大量数据。 我已经尝试了以下两种方法。 我可以使用导出实用程序手动执行此操作,也可以将结果保存到文件设置中,但是我想将代码嵌入到存储过程中,这样就可以安排批处理作业而忘记了。 同样,出于多种原因,我也不希望我们使用SSIS。
我发现的流行解决方案是:
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
。
您看到“查询输出附近的语法不正确”。 那是一条T-SQL错误消息。 正如您所说,您是在存储过程中运行它。 BCP和SQLCMD都是命令行实用程序,这意味着您必须从命令(DOS)提示符下运行它们。
有一种方法可以直接从SQL执行,但是您必须使用: xp_cmdshell
这是一篇有关如何使用它的好文章:
https://www.mssqltips.com/sqlservertip/1633/simple-way-to-export-sql-server-data-to-text-files/
这是为SQL Server 2005编写的,但也应在2008上运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.