Использование утилиты bcp для экспорта SQL-запросов в текстовый файл

Я отлаживаю хранимую процедуру (SQL Server 2005), и мне нужно узнать некоторые значения в datatable.

процедура выполняется событием приложения, и я смотрю только вывод отладки.

Я делаю следующую хранимую процедуру (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:... но если я вернусь, то уйду. генерируется только первая строка, любой вывод.

Как исправить эту проблему?

1 ответов


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