2012-08-27 25 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 

ので、すべての作品のように私は2番目のコメントを解除する場合、ファイルはC:\ドライブにありますが、最初の行だけを残して返信すると、出力が生成されます。

この問題を解決するにはどうすればよいですか?

答えて

14

bcp outエクスポートテーブル。あなたは「二重引用符」

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

でクエリをラップする必要があります -

ではなく、クエリの使用 queryoutをエクスポートするには
関連する問題