sqlserver2014数据导出与导入

sqlserver2014数据库导出与导入

写在前面
  sqlserver数据库为数据的导入导出提供了很多途径,一般地我们在已经有数据源的情况下(即服务器已经安装了sqlserver),这时使用一个全新的数据库,需要创建数据库使用。在实际项目中,我们往往已经有数据库的初始化版本,这时候就需要将初始化的数据库文件导入新的数据源。这时候我们最常用的就是使用数据库的备份文件,在新的数据源文件中还原数据库。但是一般地生产环境不允许这样的方式恢复数据库,只能通过sql脚本方式来恢复。那么下面我将总结下使用备份文件还原数据库和sql文件恢复数据库的具体办法。
1.使用的备份文件

  • 首先我们应备份数据库,选择要备份数据库,右键 任务 ->备份 如下图
    在这里插入图片描述

  • 选择数据库备份类型为完整,点击添加选择备份文件的存放路径,点击确定生成备份文件(以.bak结尾) 如下图
    在这里插入图片描述

  • 当我们在另一个数据源需要恢复数据库时,选择数据库,右键 选择还原数据库 如下图
    在这里插入图片描述

  • 将备份文件.bak放在本地某路径,点击 选择 设备->添加 ,选择对应的路径下的.bak文件进行还原 如下图
    在这里插入图片描述2.使用SQL文件

  • 首先我们选择要导出的数据库,右键选择 任务->生成脚本,然后点击下一步。如下图
    在这里插入图片描述

    • 选择特定的数据库对象,勾选所有选项(是要导出当前数据库的所有表、存储过程、函数等),点击下一步。如下图

在这里插入图片描述在这里插入图片描述

  • 在文件名中选择导出SQL文件的存放地址,点击 高级 ,在弹出框中找到 要编写脚本的数据类型 一项,选择架构和数据,即可导出结构和数据。如下图
    在这里插入图片描述

  至此已经完成了把数据库导出为SQL脚本的操作,接下来就是如何在另一个数据源下恢复这个数据库。因为我们导出数据库如有存量数据的情况下,SQL文件一般较大,直接执行会很就慢甚至造成数据库卡顿。如果我们恢复较大的sql文件,可以使用windows自带的sqlcmd,使用命令导入。具体步骤如下:

  先新建一个数据库,用于存放这个sql文件的数据和结构,如在生产中,为了使用方便,要建立和测试环境相同账户名称数据库。建立数据库可以使用客户端直接创建,具体做法是选择数据库 ,右键 ,选择新建数据库即可创建,使用sql创建,语句如下:

IF EXISTS(SELECT * FROM sysdatabases WHERE name='student')
DROP DATABASE student
GO
CREATE DATABASE student	--创建数据库
ON PRIMARY	--定义在主文件组上的文件
(NAME=stu_date,	--逻辑名称
FILENAME='E:\TEST\student.mdf',	--物理名称
SIZE=10,	--初始大小为10mb
MAXSIZE=unlimited,	--最大限制为无限大
FILEGROWTH=10%)	--主数据文件增长幅度为10%
LOG ON	--定义事务日志文件
(NAME=stu_log,	--逻辑名称
FILENAME='E:\TEST\student.ldf',	--物理名称
SIZE=1,	--初始大小为1mb
MAXSIZE=5,	--最大限制为5mb
FILEGROWTH=1)	--事务日志增长幅度为1mb` 

有了数据库后,我们使用cmd命令行,键入如下命令

sqlcmd -S localhost -U sa -P 123456 -d les_traacc -i E:\test.sql

在这里插入图片描述

参数说明:
-S 后面 localhost指导入本地数据库,要导入服务器,应更换为服务器ip

-U 后面为数据源 账户名

-P后面为数据源 密码

-d 后面为需要导入的sql文件绝对路径

  以下是实际使用后补充的注意事项
  1.在实际项目中,因为项目文件较大,导出的sql文件也较大,那么用命令行执行就会很慢,建议按照表、自定义函数、存储过程分别导出为单独的sql文件,这样导入时时间短,需要查看sql文件也不会因为很大而打开过慢。
  2.如果导出的sql文件中,导出了创建数据库的用户信息,即sql开头有create database 的操作,此时如果数据库中已经有同名数据库的情况下,需要更改mdf、ldf的文件路径。如需手动创建用户,可以删除create database 这一段sql,即可导入成功。
  3.导入数据库文件时发现了表中的数据中文乱码,发现导出的脚本默认格式为UTF-16,尝试更换为UTF-8后仍然乱码。因此判定导致乱码的原因应该和数据库创建有关系。最终解决方案如下:创建空数据库时,选项- 排序规则- Chineses_PRC_CI_AS .。这里需要注意的是我们建的新库要和导出这个sql文件的源数据库排序规则保持一致。
在这里插入图片描述
  4.由于命令行导入大文件时,无法查看日志,需要添加 -o E:/text.txt 把命令行日志输出到文件中方便我们查看。完整命令如下:

sqlcmd -S localhost -U sa -P 112233 -d les_traacc -i E:\test.sql  -o E:/text.txt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值