技术开发 频道

数据导入导出工具BCP详解

    2. 如何使用bcp导出数据

    (1) 使用bcp导出整个表或视图。

bcp AdventureWorks.sales.currency out c:\currency1.txt -c -U"sa" -P"password" --使用密码连接

    或

bcp AdventureWorks.sales.currency out c:\currency1.txt -c -T --使用信任连接

    下面是上述命令执行后的输出结果

Starting copy... 105 rows copied. Network packet size (bytes): 4096 Clock Time (ms.) Total : 10 Average : (10500.00 rows per sec.)

    下面是currency1.txt的部分内容

AED Emirati Dirham 1998-06-01 00:00:00.000 AFA Afghani 1998-06-01 00:00:00.000 ... ... ... ... ... ... ZWD Zimbabwe Dollar 1998-06-01 00:00:00.000

    在使用密码登录时需要将-U后的用户名和-P后的密码加上双引号。

    注:bcp除了可以在控制台执行外,还可以通过调用SQL Server的一个系统存储过程xp_cmdshell以SQL语句的方式运行bcp。如上述第一条命令可改写为

EXEC master..xp_cmdshell 'bcp AdventureWorks.sales.currency out c:\currency1.txt -c -U"sa" -P"password"'

    执行xp_cmdshell后,返回信息以表的形式输出。为了可以方便地在SQL中执行bcp,下面的命令都使用xp_cmdshell执行bcp命令。

    (2) 对要导出的表进行过滤。
    bcp不仅可以接受表名或视图名做为参数,也可以接受SQL做为参数。通过SQL语句可以对要导出的表进行过滤,然后导出过滤后的记录。

EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM AdventureWorks.sales.currency" queryout c:\currency2.txt -c -U"sa" -P"password"'

    bcp还可以通过简单地设置选项对导出的行进行限制。

EXEC master..xp_cmdshell 'bcp "SELECT TOP 20 * FROM AdventureWorks.sales.currency" queryout c:\currency2.txt -F 10 -L 13 -c -U"sa" -P"password"'

    这条命令使用了两个参数-F 10和-L 13,表示从SELECT TOP 20 * FROM AdventureWorks.sales.currency所查出来的结果中取第10条到13条记录进行导出。

0
相关文章