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

ser*_*hio 8 sql sql-server debugging bcp sql-server-2005

我调试存储过程(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 
Run Code Online (Sandbox Code Playgroud)

因此,当我取消注释第二个像一切正常时,文件会在C:\驱动器上显示...但是如果我将其退回,只留下第一行,则会生成任何输出.

如何解决这个问题?

pod*_*ska 17

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  
Run Code Online (Sandbox Code Playgroud)

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