Проблема с записью BCP в файл .txt из SQL - PullRequest
0 голосов
/ 30 июня 2011

Я использую Sql2008, пытаясь запустить эту команду BCP, но она никогда не создает файл.

-- Export query
  DECLARE @qry2 VARCHAR(1000)
  SET @qry2 = 'SELECT * FROM @SkippedProductsTable'

  -- Folder we will be putting the file in         
  DECLARE @incomingfolder VARCHAR(1000)
  SET @incomingfolder = 'c:\Logs'

  DECLARE @bcpCommand VARCHAR(2000)
  SET @bcpCommand = 'bcp "'+@qry2+'" queryout "'+@incomingfolder+'\SkippedProducts-'+CAST(@StoreMatchCode AS VARCHAR)+'-'+'.txt" -c -T'

  PRINT @bcpCommand
  EXEC MASTER..xp_cmdshell @bcpCommand, no_output

Созданная команда выглядит так:

bcp "SELECT * FROM @SkippedProductsTable" queryout "c:\Logs\SkippedProducts-1330-.txt" -c -T

Кто-нибудь может подсказать, что может пойти не так? Я никогда раньше не пользовался BCP и не уверен, с чего начать.

Для начала я знаю, что папка в этом месте определенно существует

1 Ответ

0 голосов
/ 30 июня 2011

Я думаю, что проблема в SELECT.

Вы SELECT используете переменную таблицы, которая не объявлена ​​в запросе, поэтому BCP ничего не может сделать.

Табличные переменные сохраняются только для контекста, в котором они вызываются, поэтому даже если у вас есть один в запросе и у вас есть динамический sql или подпроцесс в этом первом запросе, они не смогут увидеть табличную переменную.

Подробнее см.

...