2012-08-27 8 views
7

Eseguo il debug di una stored procedure (SQL Server 2005) e ho bisogno di trovare alcuni valori in un datatable.Utilizzo dell'utilità bcp per esportare query SQL in un file di testo

La procedura viene eseguita da un evento dell'applicazione e guardo solo l'output di debug.

faccio la seguente mia stored procedure (SQL Server 2005), ho preso una tabella di sistema (master.dbo.spt_values) come ad esempio:

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 

Così, quando ho rimuovere il commento il secondo come tutto funziona, un file appare sul C: \ drive ... ma se ritorno indietro lasciando solo la prima riga, viene generato un output.

Come risolvere questo problema?

risposta

14

bcp out tabelle di esportazione.

Per esportare un utilizzo di query queryout invece - è necessario avvolgere la query in "virgolette doppie"

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

Problemi correlati