ストアドプロシージャ(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
したがって、すべてが機能するように2番目のコメントを解除すると、C:\ドライブにファイルが表示されます...しかし、最初の行だけをコメントに戻すと、出力が生成されます。
この問題を解決する方法は?
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