Вопрос

У меня возникли проблемы с использованием процесса SQL BCP для загрузки моих таблиц с данными.Я вызываю его из приложения .NET, поэтому я запускаю исполняемый файл xp_cmdshell для выполнения команды bcp.Вот как выглядит одна из этих команд:

EXEC master..xp_cmdshell 'bcp "[D001Test.Restore].[dbo].[GeneralComments]" in "<DataFile>" -q -c -t "|_|" -r "|+~+|" -k -V80 -a33000 -E -STest'

Когда имя базы данных, в которую я импортирую (в данном случае D001Test.Restore), содержит "." в имени, команда bcp завершается с ошибкой.Есть ли какой-нибудь способ обойти это?Я пробовал как со скобками, так и без них.Возможно, мне придется импортировать данные в новую базу данных и переименовать их в нужное имя после того, как это будет сделано.

Это было полезно?

Решение

Вам не нужен аргумент -q и кавычки.В документации указано следующее относительно аргумента q:

Используйте этот параметр, чтобы указать базу данных, имя владельца, таблицы или представления, которое содержит пробел или одинарную кавычку отметьте.Заключите весь текст из трех частей название таблицы или представления в кавычки ("").

Имя вашей базы данных не содержит ни пробела, ни одинарных кавычек.

Попробуй это:

bcp [D001Test.Restore].dbo.GeneralComments in "<DataFile>" -c -t "|_|" -r "|+~+|"
-k -V80 -a33000 -E -STest
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top