今天晚上在处理数据时候,到执行BCP命令就出错,报
CTLIB Message: - L6/O8/S5/N3/5/0:
ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.
Establishing connection failed.错误。
BCP的语法肯定是没有问题的,因为以前一直在用,查找半天没有找到相关的资料。最后改为bulk语句。
把数据处理完后,在网上仔细搜查资料,终于找到BCP出错的问题所在。具体解决方法以及出错原因如下:
我的系统中是装过Sybase的,而且,Sybase是在SQLSERVER之后装的,所以,以前用BCP往SQLSERVER中导数据时一直没有问题,现在重装了SQLSERVER,环境变量就变了,SQLSERVER对应的那些变量在Sybase之后了(以前是在前面的),在执行BCP命令时,系统首先找到的BCP是Sybase的BCP,而不是SQLSERVER的,用Sybase的BCP往SQLSERVER中导数据当然会有问题。
解决问题的方法也很简单,我是把SQLSERVER对应的环境变量提前,一切就都OK了。
看来windows环境变量有先后优先级之分,以后要注意了。