繁体   English   中英

在SQL Server 2008中的存储过程中导出为CSV

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM