2012-08-27 10 views
7

Ich debugge eine gespeicherte Prozedur (SQL Server 2005) und ich muss einige Werte in einer Datentabelle herausfinden.Verwenden von Bcp-Dienstprogramm zum Exportieren von SQL-Abfragen in eine Textdatei

Die Prozedur wird von einem Ereignis der Anwendung ausgeführt und ich sehe nur die Debugging-Ausgabe.

ich folgendes meine gespeicherten Prozedur (SQL Server 2005) zu tun, ich eine Systemtabelle nahm (master.dbo.spt_values) als Beispiel:

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 

Also, wenn ich Kommentar- der zweiten wie alles funktioniert, Eine Datei erscheint auf dem C: \ Laufwerk ... aber wenn ich sie zurückgebe und nur die erste Zeile belasse, wird jede Ausgabe erzeugt.

Wie behebt man dieses Problem?

Antwort

14

bcp out exportiert Tabellen.

Um queryout stattdessen eine Abfrage Verwendung exportieren - Sie werden Ihre Abfrage in "Anführungszeichen"

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

wickeln müssen
Verwandte Themen