• Microsoft SQL Server 数据量大 导入导出 问题汇总


    问题一:

    今天拿到一份有近百万条数据的Excel要导到数据库里面,我先在本地(2014)用自带Excel,然后生成脚本文件去服务器(2008)上执行;文件SQL打开不了。

    解决方法:

    用自带的sqlcmd工具

    第一步:Win+R 键入:cmd 命令,开启命令行工具;

    第二步:键入:cd C:Program FilesMicrosoft SQL Server100ToolsBinn (具体目录路径跟你安装的SQL位置有关)

    第三步:键入:sqlcmd -S . -U sa -P 123 -d test -i data.sql

    参数说明:-S 服务器地址 -U 用户名 -P 密码  -d 数据库名称 -i 脚本文件路径 

    转自:https://www.cnblogs.com/zhangjbravo/p/7059099.html

    更多参考:https://msdn.microsoft.com/zh-cn/library/ms162773(v=sql.120).aspx

    问题二:

    今天拿到一个数据库备份文件,服务器上还原一下,一百来万条数据,要导出成Excel,一套 任务 => 导出数据 => SQL->Excel 2007 很好导出到65536条报错,一查是Excel限制 。到本地试试还是不行,那么写存储过程用分页导出多张子表,每个子表65536条数据。好烦不想写。用bcp吧。

    解决方法:

    第一步:运行下列语句设置安全配置

    EXEC sp_configure 'show advanced options', 1

    RECONFIGURE

    EXEC sp_configure 'xp_cmdshell', 1

    RECONFIGURE

    没设置会报错“SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器". ”

    第二步:EXEC master..xp_cmdshell 'bcp "use -B select * from -T queryout -E -c -S -U -P

    参数说明:-B 数据库名称  -T 表名  -E Excel路径  -S 服务器地址  -U 用户名  -P 密码 

    例子:EXEC master..xp_cmdshell 'bcp "use LJ_PD_IPR_INTERFACE select * from PatentInformation" queryout D:11.xls -c -S"." -U"sa" -P"123456"'

    问题三:

    用bcp,导出的数据中含有“【”、“】”等特殊字符时,最后Excel的样式会错乱。又寻到个工具:SQL Prompt

    下载地址:https://www.red-gate.com/products/sql-development/sql-prompt/

    使用方法很简单,速度也很快,先查询出所需要的数据,右击左上角的open in excel就好了

  • 相关阅读:
    正则表达式
    Event flow(事件流)
    Regular Expression(验证账号密码邮箱身份证)
    constructor&object 的联系与区别
    BMAP
    for each in 与for in与for of
    History of program
    脑图(作业)
    对DOM的认识
    BOM的认识
  • 原文地址:https://www.cnblogs.com/SilverWolf/p/8917254.html
Copyright © 2020-2023  润新知