2015-06-11 2 views
0

Я создал текстовый файл с помощью следующей команды на сервере, где база данных находитсяКак сохранить txt-файл, созданный командой BCP на другом сервере?

EXEC master.dbo.sp_configure 'show advanced options', 1 
RECONFIGURE EXEC master.dbo.sp_configure 'xp_cmdshell', 1 
RECONFIGURE EXEC xp_cmdshell 'bcp "SELECT top 10 macnum, Cus_name,Cus_Email FROM [VBOS_TSP].[dbo].[Cust_file]" queryout "d:\creatFile.txt" -T -c' 

Но мне нужно, чтобы создать этот текстовый файл на другой компьютер. Поскольку я не хочу сохранять этот текстовый файл на производстве. Пожалуйста, предложите мне другой способ, чтобы, пройдя Path и/или передавая учетные данные определенного сервера. Как сгенерировать этот файл на другом сервере?

+0

Вы считаете, что подключены диски? –

+0

Можете ли вы подробнее объяснить, Дэн? – Ashish

ответ

0

Вы не можете использовать путь uncout для запроса на bcp. Вы только решение, чтобы экспортировать его на текущий компьютер и скопировать его впоследствии.

Другая идея - запустить bcp на удаленной машине и подключиться к вашему хранилищу данных для экспорта данных с помощью параметра -S.

Надеюсь, это вам поможет.

+0

Ионный, я попробовал. Но он по-прежнему создает этот текстовый файл на сервере, где находится база данных .... – Ashish

+0

Btw. идея сопоставленных дисков, вероятно, тоже будет работать. Но я не совсем уверен. Вы можете сопоставить путь unc на локальном диске и попытаться записать на этот диск. – Ionic

+0

Зависит от того, как вы выполняете bcp. Вы можете запустить sqlcmd на удаленном компьютере, запустить bcp на этом компьютере. Вы использовали параметр -S? КПП. Другая идея - экспортировать данные с помощью PowerShell, что также является хорошим решением, если вам нужно скопировать данные. – Ionic

1

Путь на другом компьютере должен быть общим путем и доступен с этого устройства и должен иметь полные разрешения для чтения/записи в папке.

Я работал над похожим сценарием, и ниже для меня работает код. Попробуйте его один раз после получения разрешений

@LV_FILE_PATH='\\192.168.1.105\Folder\creatFile.txt' 
@LV_SQLTXT='"SELECT top 10 macnum, Cus_name,Cus_Email FROM [VBOS_TSP].[dbo].[Cust_file]"' 

SET @LV_CMDTXT = 'BCP ' + @LV_SQLTXT + ' QUERYOUT "' + @LV_FILE_PATH + '" -c -U -T -S -r\n' 
EXEC MASTER..XP_CMDSHELL @LV_CMDTXT 
Смежные вопросы