使用bcp实用程序将SQL查询导出到文本文件

使用bcp实用程序将SQL查询导出到文本文件,sql,sql-server,debugging,sql-server-2005,bcp,Sql,Sql Server,Debugging,Sql Server 2005,Bcp,我调试了一个存储过程(SQLServer2005),需要在数据表中找出一些值 该过程由应用程序的一个事件运行,我只观察调试输出 我执行以下存储过程(SQL Server 2005),以系统表(master.dbo.spt_值)为例: set @logtext = 'select name, type from master.dbo.spt_values where number=6' --set @logtext = 'master.dbo.spt_values' SET @cmd = 'bcp

我调试了一个存储过程(SQLServer2005),需要在数据表中找出一些值

该过程由应用程序的一个事件运行,我只观察调试输出

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

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:\驱动器上。。。但是,如果我返回,只留下第一行,就会生成任何输出


如何解决此问题?

bcp out
导出表

要导出查询,请改用
queryyout
——您需要将查询用“双引号”括起来

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