我在使用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命令失败。有没有办法解决?无论有没有括号,我都试过了。我可能必须将数据导入新数据库,并在完成后将其重命名为所需的名称。
答案 0 :(得分:2)
您不需要-q参数和引号。文档陈述了关于q参数的以下内容:
使用此选项指定数据库, 所有者,表或视图名称 包含空格或单引号 标记。包括整个三部分 表或视图名称用引号 ( “”)。
您的数据库名称既不包含空格也不包含单引号。
试试这个:
bcp [D001Test.Restore].dbo.GeneralComments in "<DataFile>" -c -t "|_|" -r "|+~+|"
-k -V80 -a33000 -E -STest