zoukankan      html  css  js  c++  java
  • sql server 数据导出(入)方法总结

           我们都知道日常在面对数据需求时需要导出数据,比较少量的数据导出我们一般是通过查询后另存即可,当面对数据量比较大的时候我们应该怎么处理?
    我搜索总结一些几个方法:1、bcp 导出。2、数据库本身自带的导入导出。3、如果更大的话,直接把备份库直接拷贝出来,导出整个库
    方法1:(少数量导入和导出)
    select *
    from aa.dbo.studens

    方法二:数据库本身自带的导出:点击数据库(aaa)--任务--导出(入)数据—数据源(选择与源的数据存储格式相匹配的数据访问接口。
    可用于数据源的访问接口可能不止一个。 例如,对于SQL Server可以使用SQL ServerNative Client、.NET Framework 数据提供程序的
    SQL Server 或 Microsoft OLE DB Provider for SQL Server):选择SQL Server Native Client or Microsoft OLE DB Provider for SQL Server 。
    登录用户名和密码--目标:选择你想存为的文件格式(平面文件目标)--文件名(存放地址:C:aa.txt)---点击下一步到:源表或源视图(dbo.student)
    ——行分隔符:选择({CR}{LF})列分隔符(逗号{,})--点下去就行了

    注:导入时注意数据类型设置


    方法三:bcp导出
    --先开启cmdshell

    exec sp_configure 'show advanced options', 1

    go

    reconfigure

    go

    exec sp_configure 'xp_cmdshell', 1

    go

    reconfigure

    go

    --导出指定表的文本文件 
    exec master..xp_cmdshell 'bcp dbname..tablename out D:DT.txt -c -Sservername -Usa -Ppassword' 

    --根据sql语句导出指定表的文本文件 
    exec master..xp_cmdshell 'bcp "select top 10 * from dbname..tablename" queryout d:DT.txt -c -Sservername -Usa -Ppassword' 

    --导出指定表的文本文件,指定分隔符,在-t后设置分隔符
    exec master..xp_cmdshell 'bcp dbname..tablename out D:DT.txt -c -t, -Sservername -Usa -Ppassword'

    --导入指定表的文本文件
    exec master..xp_cmdshell 'bcp dbname..tablename in d:DT.txt -c -Sservername -Usa -Ppassword'


    注:

    1.如果数据表里已有数据,此方法从文本导数据到数据表时,会在后面追加数据,不会先清空表。

    2.如果导出时指定过分隔符,导入时用上面的导入方法会报错。解决方法是不要指定分割符

    3.此语句在sqlserver里执行时,不能换行,否则报错

  • 相关阅读:
    滚动页面时DIV到达顶部时固定在顶部
    【Java学习笔记】拾遗
    【Java学习笔记】文件信息
    【Java学习笔记】使用BufferedReader类(流的读写)
    【Java学习笔记】可变参数
    【Java学习笔记】控制台读写
    【Java学习笔记】关于默认值
    【Java学习笔记】FileChannel的学习
    【JAVA学习笔记】静态导入
    【Java学习笔记】Java中关于tostring方法的误操作
  • 原文地址:https://www.cnblogs.com/yuanmengruoxi/p/9519258.html
Copyright © 2011-2022 走看看