本帖最后由 QWERTYU 于 2019-11-7 08:46 编辑
问题一: 今天拿到一份有近百万条数据的Excel要导到数据库里面,我先在本地(2014)用自带Excel,然后生成脚本文件去服务器(2008)上执行;文件SQL打开不了。 解决方法: 用自带的sqlcmd工具 第一步:Win+R 键入:cmd 命令,开启命令行工具; 第二步:键入:cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn (具体目录路径跟你安装的SQL位置有关) 第三步:键入:sqlcmd -S . -U sa -P 123 -d test -i data.sql 参数说明:-S 服务器地址 -U 用户名 -P 密码 -d 数据库名称 -i 脚本文件路径
问题二: 今天拿到一个数据库备份文件,服务器上还原一下,一百来万条数据,要导出成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就好了
|