• BCP学习(3):BCP导出数据


    1.使用out导出全表数据

    使用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.) 

    在使用密码登录时需要将-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命令。

    :对导出数据的格式要求

    导出数据时,为了方便浏览,需要对数据格式进行一些规范,可以使用参数-t 加上相应的分隔符,如"|"。

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

    2.使用queryout通过SQL语句查询到相关数据

    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条记录进行导出。

    3.使用bcp导出format文件

    BCP不仅可以根据表、视图导入导出数据,还可以配合格式文件对导入导出数据进行限制。格式文件以纯文本文件形式存在,分为一般格式和xml格式。用户可以手工编写格式文件,也可以通过BCP命令根据表、视图自动生成格式文件。

    EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format1.fmt -c -T'

    上述命令将currency表的结构生成了一个格式文件currency_format1.fmt,下面是这个格式文件的内容。

    9.0
    3
    1 SQLCHAR 0 6 "\t" 1 CurrencyCode SQL_Latin1_General_CP1_CI_AS
    2 SQLCHAR 0 100 "\t" 2 Name SQL_Latin1_General_CP1_CI_AS
    3 SQLCHAR 0 24 "\r\n" 3 ModifiedDate

    这个格式文件记录了这个表的字段(共3个字段)类型、长度、字符和行分割符和字段名等信息。

    BCP还可以通过-x选项生成xml格式的格式文件。

    EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format2.fmt -x -c -T'

    xml格式文件所描述的内容和普通格式文件所描述的内容完全一样,只是格式不同。

     
  • 相关阅读:
    关于'selffilter' is not a registered tag library. Must be one of:
    关于Django报错django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configure
    大杂烩
    PyQt5多个GUI界面设计
    OpenCV读取图像问题:OpenCV(3.4.3) D:BuildOpenCVopencv-size.width0 && size.height0 in function 'cvimshow'
    MOOC课程信息D3.js动态可视化
    详解教务系统模拟登录与爬取二
    教务系统模拟登录与成绩爬取一
    pyecharts各省人口GDP可视化分析
    python爬虫伪装技术应用
  • 原文地址:https://www.cnblogs.com/phyllis/p/2045241.html
Copyright © 2020-2023  润新知