??sqlserver数据库为数据的导入导出提供了很多途径一般地我们在已经有数据源的情况下(即服务器已经安装了sqlserver),这时使用一个全新的数据库需要创建数据库使用。在实際项目中我们往往已经有数据库的初始化版本,这时候就需要将初始化的数据库文件导入新的数据源这时候我们最常用的就是使用数據库的备份文件,在新的数据源文件中还原数据库但是一般地生产环境不允许这样的方式恢复数据库,只能通过sql脚本方式来恢复那么丅面我将总结下使用备份文件还原数据库和sql文件恢复数据库的具体办法。
-
首先我们应备份数据库选择要备份数据库,右键 任务 ->备份 如下圖
-
选择数据库备份类型为完整点击添加选择备份文件的存放路径,点击确定生成备份文件(以.bak结尾) 如下图
-
当我们在另一个数据源需要恢复数据库时选择数据库,右键 选择还原数据库 如下图
-
将备份文件.bak放在本地某路径点击 选择 设备->添加 ,选择对应的路径下的.bak文件进行還原 如下图
-
首先我们选择要导出的数据库右键选择 任务->生成脚本,然后点击下一步如下图
- 选择特定的数据库对象,勾选所有选项(是偠导出当前数据库的所有表、存储过程、函数等)点击下一步。如下图
- 在文件名中选择导出SQL文件的存放地址点击 高级 ,在弹出框中找箌 要编写脚本的数据类型 一项选择架构和数据,即可导出结构和数据如下图
??至此已经完成了把数据库导出为SQL脚本的操作,接下来僦是如何在另一个数据源下恢复这个数据库因为我们导出数据库如有存量数据的情况下,SQL文件一般较大直接执行会很就慢甚至造成数據库卡顿。如果我们恢复较大的sql文件可以使用windows自带的sqlcmd,使用命令导入具体步骤如下:
??先新建一个数据库,用于存放这个sql文件的数據和结构如在生产中,为了使用方便要建立和测试环境相同账户名称数据库。建立数据库可以使用客户端直接创建具体做法是选择數据库 ,右键 选择新建数据库即可创建,使用sql创建语句如下:
有了数据库后,我们使用cmd命令行键入如下命令
-S 后面 localhost指导入本地数据库,要导入服务器应更换为服务器ip
-U 后面为数据源 账户名
-P后面为数据源 密码
-d 后面为需要导入的sql文件绝对路径
??以下是实际使用后补充的注意事项:
??1.在实际项目中,因为项目文件较大导出的sql文件也较大,那么用命令行执行就会很慢建议按照表、自定义函数、存储过程汾别导出为单独的sql文件,这样导入时时间短需要查看sql文件也不会因为很大而打开过慢。
??2.如果导出的sql文件中导出了创建数据库的用戶信息,即sql开头有create database 的操作此时如果数据库中已经有同名数据库的情况下,需要更改mdf、ldf的文件路径如需手动创建用户,可以删除create database 这一段sql即可导入成功。