У меня возникли проблемы с использованием процесса SQL BCP для загрузки моих таблиц с данными. Я называю это из .NET-приложения, поэтому я выполняю исполняемый файл xp_cmdshell для запуска команды bcp. Вот что одна из этих команд выглядит следующим образом:База данных BCP с периодом по имени
EXEC master..xp_cmdshell 'bcp "[D001Test.Restore].[dbo].[GeneralComments]" in "<DataFile>" -q -c -t "|_|" -r "|+~+|" -k -V80 -a33000 -E -STest'
Когда имя базы данных Я ввожу в (в данном случае D001Test.Restore) имеет «» в имени команда bcp завершается с ошибкой. Есть ли способ обойти это? Я пробовал как с, так и без скобок. Возможно, мне придется импортировать данные в новую базу данных и переименовать их в нужное имя после его завершения.
Я ценю ответ. Я проверю это. Однако у меня все еще есть проблема, когда имя базы данных имеет пробел и период в имени. Я предварительно использовал решение для использования временной таблицы с подчеркиваниями, заменяющими периоды, но это довольно уродливая концепция. – Kevin
@Kevin Если у вас есть пробел и период в имени базы данных, вам нужны кавычки. bcp "[D001 Test.Restore] .dbo.GeneralComments" in "" -c -t "| _ |" -r "| + ~ + |" -k -V80 -a33000 -E -STest –
Bill
@Bill К сожалению, это не сработает. Если вы используете кавычки, процесс bcp должен быть запрограммирован для поиска периодов, независимо от скобок. Итак, это: EXEC master..xp_cmdshell 'bcp "[D019Restore.Generic Test] .dbo.GeneralComments" out "
Kevin