我在本机安装了MSSQL2000 SP4,一直正常使用大半年,然后每次查询束后都需要用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,我将语句复制到服务器上执行却能正常导出,然后将从网络上找到的语句复制到服务器上也能正常执行,可复制到我本机上又出现上面的错误,我再将以前正常时间段内操作的SQL语句复制到本机,却也不能执行了真是怪事啊!此为网络上找到的语句:
EXEC master..xp_cmdshell 'bcp "SELECT * FROM pubs..authors" queryout "c:\test.xls "  -c -T'以下为我日常操作时使用的语句:
--导出GROUP 6
select * into SA_TempExp_table from #group_6 ;
--导出
begin
declare @sqlstr varchar(2000);
declare @counts varchar(2000);set  @counts=(select count(*) as counts  from SA_TempExp_table);set @sqlstr='bcp "select phone_no from SA_TempExp_table" queryout "E:\日志\201204\20120417\群5_'+@counts+'.txt" -c -T';
exec master.dbo.xp_cmdshell @sqlstr ;end;
--删除临时表
drop table SA_TempExp_table;麻烦大侠给解决一下此问题,谢谢!