2012-08-27 82 views
7

我調試存儲過程(SQL Server 2005),我需要查找數據表中的某些值。使用bcp實用程序將SQL查詢導出到文本文件

該過程由應用程序的事件運行,我只注意調試輸出。

我這樣做我的存儲過程(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:\驅動器上產生...但是如果我把它留回只留下第一行,則會生成任何輸出。

如何解決這個問題?

回答

14

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

相關問題