一尘不染

使用bcp实用工具将SQL查询导出到文本文件

sql

我调试了存储过程(SQL Server 2005),需要在数据表中找出一些值。

该过程由应用程序的事件运行,而我仅观察调试输出。

我执行以下存储过程(SQL Server 2005),以系统表(master.dbo.spt_values)为例:

set @logtext = 'select name, type from master.dbo.spt_values where number=6'
--set @logtext = 'master.dbo.spt_values'
SET @cmd = 'bcp ' + @logtext + ' out "c:\spt_values.dat" -U uId -P uPass -c'
EXEC master..XP_CMDSHELL @cmd

因此,当我取消注释第二行(如一切正常)时,文件在C:\驱动器上分配……但是如果我将其注释为仅剩下第一行,则将生成任何输出。

如何解决这个问题?


阅读 244

收藏
2021-03-10

共1个答案

一尘不染

bcp out 导出表。

要导出查询,请queryout改用-您需要将查询用“双引号”引起来

set @logtext = '"select name, type from master.dbo.spt_values where number=6"' 
--set @logtext = 'master.dbo.spt_values' 
SET @cmd = 'bcp ' + @logtext + ' queryout "c:\spt_values.dat" -U uId -P uPass -c' 
EXEC master..XP_CMDSHELL @cmd

http://msdn.microsoft.com/en-
us/library/ms162802.aspx

2021-03-10