MSSQL中使用命令行BCP命令导入导出数据

 
  很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具BCP对数据进行同样的操作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于 ODBC 或 sql OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的操作。

  BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到Excel文件中

  bcp "pubs.dbo.authors" out "c:\temp1.xls" -c -S GNETDATA\GNETDATA -U sa -P passWord

  BCP不仅能够通过命令行执行,同时也可以通过SQL执行,这需要一个系统存储过程xp_cmdshell来实现,如上面的命令可改写为如下形式。

  EXEC master..xp_cmdshell 'bcp "pubs.dbo.authors" out "c:temp1.xls" -c  -S GNETDATA\GNETDATA -U sa -P passWord'

 

附在我本机成功的方法:

1、CMD命令行下执行:

C:\>BCP "select Current_Timestamp" queryout "d:\ab.txt" -c -U user1 -P p1234  -S DELL-MSSQL\SQLEXPRESS

 

DELL-MSSQL\SQLEXPRESS 表示: 机器名\数据库实例名

2、SQL执行:

EXEC master..xp_cmdshell 'BCP "select Current_Timestamp" queryout "d:\临时文件\ab.txt" -c -U user1 -P 1234 -S DELL-MSSQL\SQLEXPRESS'

 

DELL-MSSQL\SQLEXPRESS 表示: 机器名\数据库实例名

 

     最后提醒一下,不成功的原因主要与目录权限有关。请确保SQL Server 已开放 xp_cmdshell 的使用权限(可以SQL Server外围应用配置器中设置),再一个就是要有生成文件所在目录的系统操作权限(要有目录的写权限)。因为操作权限的原因让我白白浪费了不少时间。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值