sqlserver bcp导出数据问题

bcp导出数据的大致代码,sql下是这样的:

exec xp_cmdshell 'BCP "select top 100 * from MeteorologyDB.dbo.MeteorlogyData" queryout d:/data/test.txt -c -S MICROSOF-181A54\SQLEXPRESS -U"sa" -P"kaka8809"';

代码很短,但是可能的问题不少。

1. xp_cmdshell或者cmdshell关闭,解决方法:

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

第一句是设置使得允许配置

第二句是确认

第三句是打开cmdshell

第四句是确认


注意两点:一是RECONFIGURE要大写;而且设置完后一定要执行RECONFIGURE,否则不生效。


2.无法打开连接

出现类似下面的语句提示

SQLState = 08001, NativeError = 2 Error = [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [2].

首先要打开sql的tcp服务,设置验证方式为混合验证。

这个还是参考官网吧。http://support.microsoft.com/kb/914277/zh-cn#method1

如果你确认配置没有问题,还是出现无法连接的情况,那么指定-S参数,也就是指定服务器。参看最上面代码的-S 参数,一般都可以解决。


3.无法打开BCP主数据文件

首先确认服务器上有你指定的文件,注意不是本地机子,如果你是在本地做实验那么无所谓了。

如果有,却还是无法写入,可以试试下面这种方法。

建立一个文件夹,共享,允许其他用户修改,将文件放入这个文件夹中。


提醒:

操作完后,记得关闭cmdshell,关闭你的共享文件,关闭一切临时授权。

你可能感兴趣的:(sqlserver bcp导出数据问题)