zoukankan      html  css  js  c++  java
  • SQL数据库与文本文件之间的大批量数据互导

    打開'xp_cmdshell'

    EXEC sp_configure 'show advanced options', 1; 

    RECONFIGURE; 

    EXEC sp_configure 'xp_cmdshell', 1; 

    RECONFIGURE; 

    EXEC master..xp_cmdshell 'bcp "Select * from AAA.dbo.Role" queryout "D:\AAA\Users\AAA\DbExport\111est.txt" -c -t"|" -r"|\n" /S"AAA" /U"sa" /P"AAA"'

    --delete from d_t11 
    select * from Role                     
    BULK INSERT Role 
    FROM 'D:\AAA\Users\AAA\DbExport\111est.txt'
    WITH

          FIELDTERMINATOR 
    = '|',
          ROWTERMINATOR 
    = '|\n'
    )
    select * from Role    

     點擊上面成功

    **********************************************
    数据库:
    sql2000

    服务器名: SqlServerName
    数据库名:  DataBaseName
    表    名:  d_t11
    用 户 名:  sa
    密    码:  sa
    运行环境:  sql2000查询分析器

    数据文件:

    以下示例为文本文件
    如果你要导入或导出到*.doc,*.dat类型的数据文件中,只需将文件名更改即可.
    文件路径及文件名:  c:\mrfu.txt

    **********************************************

    **********************************************
    1.sql中数据与文本文件互导
    **********************************************

    相邻字段之间用空格隔开
    EXEC master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:\mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" '    或
    EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -S"SqlServerName" -U"sa" -P"sa" '

    相邻字段之间用逗号或其它符号隔开(在-c后添加-t 并在-t后添加你要使用的分隔符)
    Exec master..xp_cmdshell ' bcp "DataBaseName..d_t11" out "c:\mrfu.txt" -c -t, -S"SqlServerName" -U"sa" -P"sa" '    或
    EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -t,, -S"SqlServerName" -U"sa" -P"sa" '

    大容量复制选项 bcp 实用工具开关 BULK INSERT 子句
    字符模式格式 -c    DATAFILETYPE = 'char'
    字段终止符   -t    FIELDTERMINATOR
    行终止符     -r    ROWTERMINATOR


    --本例从指定的sql数据库中导入员工详细信息,该文件使用竖杠 (|) 字符作为字段终止符,使用 |\n 作为行终止符。
    EXEC master..xp_cmdshell 'bcp "Select * from DataBaseName..d_t11" queryout "c:\mrfu.txt" -c -t"|" -r"|\n" -S"SqlServerName" -U"sa" -P"sa" '

    --将数据从数据文件(c:\mrfu.txt)复制到 SQL Server中
    --delete from d_t11
    select * from d_t11                    
    BULK INSERT DataBaseName..d_t11
    FROM 'c:\mrfu.txt'
    WITH
    (
          FIELDTERMINATOR = '|',
          ROWTERMINATOR = '|\n'
    )
    select * from d_t11   或

    EXEC master..xp_cmdshell 'bcp " DataBaseName..d_t11" in "c:\mrfu.txt" -c -t"|" -r"|\n" -S"SqlServerName" -U"sa" -P"sa" '

    **********************************************
    相关说明:
    1.xp_cmdshell
    以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。授予非管理用户执行 xp_cmdshell 的权限。
    2.bcp
    实用工具在SQL2000数据库和数据文件之间以用户指定的格式复制数据。
    语法
    bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
        {in | out | queryout | format} data_file
        [-m max_errors] [-f format_file] [-e err_file]
        [-F first_row] [-L last_row] [-b batch_size]
        [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
        [-q] [-C code_page] [-t field_term] [-r row_term]
        [-i input_file] [-o output_file] [-a packet_size]
        [-S server_name[\instance_name]] [-U login_id] [-P password]
        [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]
    **********************************************

  • 相关阅读:
    记一次曲折的运维经历-2020-04-23
    linux主机上执行wget命令遇到的问题
    linux系统上部署nfs服务
    【精】Linux磁盘I/O性能监控之iostat详解
    ssh_exchange_identification: Connection closed by remote host 解决方法
    nginx backup 功能
    mysql 报错 get error 28 from storage engine 解决方法
    mysql常用sql语句
    关于mysql 主从同步错误解决方法
    azure负载均衡上遇到的坑-12-28
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2052684.html
Copyright © 2011-2022 走看看