执行SQL bcp命令时出现“Syntax Error in ‘queryout’.”错误的原因及解决

文章目录
[隐藏]

在安装了SQL Server的机器上使用bcp批处理导出数据为txt文件,之前执行的时候都能导出成功,但最近出现一个错误,不能导出了。

出现如下错误

Copy direction must be either 'in' or 'out'.
Syntax Error in 'queryout'.
usage: bcp [[db_name.]owner.]table_name[:slice_num] [partition pname] {in | out} [filename]
 [-m maxerrors] [-f formatfile] [-e errfile]
 [-F firstrow] [-L lastrow] [-b batchsize]
 [-n] [-c] [-t field_terminator] [-r row_terminator]
 [-U username] [-P password] [-I interfaces_file] [-S server]
 [-a display_charset] [-z language] [-v]
 [-A packet size] [-J client character set] 
 [-T text or image size] [-E] [-g id_start_value] [-N] [-X]
 [-M LabelName LabelValue] [-labeled]
 [-K keytab_file] [-R remote_server_principal] [-C]
 [-V [security_options]] [-Z security_mechanism] [-Q] [-Y]
 [-x trusted.txt_file]
 [--maxconn maximum_connections] [--show-fi] [--hide-vcc]
NULL

在网上搜索发现,是因为:后来在这个机器上安装了Sybase数据库。安装Sybase后,导致环境变量发生了改变导致bcp命令出错。

如何恢复SQL Server的bcp命令的正常使用?

我发现,安装了Sybase后,Path的变量值为:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\sybase\dll;c:\sybase\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\Program Files\Sybase\Adaptive Server Anywhere 6.0\win32;c:\sybtools\WIN32;c:\sybtools\ASEP

而安装SQL未安装Sybase的Path变量值为:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN

可以发现影响bcp的就是“C:\Program Files\Microsoft SQL Server\80\Tools\BINN”这一行。所以将Path的变量值根据实际情况修改回来就可以正常使用SQL的bcp命令了。测试通过。

分类:数据库

标签:, , , ,

对本文发表评论





4 + 7 = ?

注意:
1、请勿单纯发表顶啊、打酱油之类无任何意义的评论,否则将被视为spam!谢谢合作!
2、但欢迎你留下对本文的看法或技术上的任何疑问,我会及时回复你。