哈喽,大家好呀!这里是码农后端。在日常的数据库开发和使用过程中,数据库的迁移还是比较常见的,比如工作环境发生变化,或者是数据库所在的服务器需要更换等等,可能都需要进行数据库的迁移。本篇将介绍几种常见的SQL Server数据库的迁移方式。

1、数据库的分离、附加

注:分离和删除的区别在于硬盘上是否还留存有数据库文件

1.1 查找数据库文件路径

这一步可以看作是迁移前的准备工作,即找到我们要迁移的数据库文件的位置。

右键要迁移的数据库 ->属性 ->文件,复制文件的路径。

61731700879c47773c8e2c8dc35f62d1.png

在本地查看

e246abb19099b87e7009428c2ef4b945.png

数据文件:保存数据库中的数据

日志文件:保存对数据库操作的一些日志

1.2 分离

右键要分离的数据库 ->任务 ->分离;

31b27dae54d991d8cfdd55175d3ee207.png

如下两个都勾选上,然后点击确定即可;

580cb371ca669303d69804f10cac8ecb.png

分离后,右键刷新数据库,会发现之前的那个数据库已经不在我们的对象资源管理器中,说明已经成功分离了。

1.3 分离之后保存到本地

分离后,就能对数据库文件进行拷贝黏贴了。准确的说是从原来的磁盘路径迁移到本地新的目录路径中。

注:一定要先分离,再拷贝黏贴到本地的其他目录;否则会提示:操作无法完成,因为文件已在SQL Server(MSSQLSERVER)中打开。

7450ca594c8d69f4f293a7bfe1870150.jpeg

1.4 还原

分离之后,如果想要还原数据库,就需要利用附加功能。

点击数据库,右键附加 ->添加,找到要添加的数据库文件的位置,点击两次确定,就可以在对象资源管理器中看到我们之前的数据库又回来了,并且里面的表和数据都还在。

ca4fd48b74b85a1c0869fdd6b388a0eb.png

1.5 分离附加方式的问题

在该操作的过程中,我们的数据库是一种不可用的状态,即只要把数据库分离了,就无法访问这个数据库了。

2、数据库的备份、还原

备份数据库的主要目的是为了防止数据的丢失或损坏。

相比于分离附加,备份过程中数据库是可用的状态。

2.1 备份

右键要分离的数据库 ->任务 ->备份;

5a5a3938c13e3127a02ed50cfc22c4a3.png

备份类型选择最简单的完整备份即可,删除原路径,自行添加备份到的位置,命名为DB.bak,然后一路点确定,备份成功后会提示对数据库"DB"的备份已成功完成。然后就可以去对应路径查看备份的文件了。

623a54d358ba39eaa8fad2de1b8f3f88.png

2.2 还原

备份好后,如果某一天我们数据库中的数据被丢失或损坏时,就可以进行还原操作了。

右键数据库 ->还原数据库,勾选设备,然后添加,选中备份的文件进行还原;一路点击确定,即可成功还原。

a4f39e07934906036365bc2ef42ffc61.png

2.3 删除和分离数据库的区别

1)分离数据库后,在SQL Server里面就没有该数据库了,但是其文件还在。

即分离之后数据库中的数据文件是没有丢失的,还可以通过附加的方式将数据添加进来。

2)而删除会删除数据文件和日志文件,是比较危险的操作。

3、数据库脚本的保存

3.1 生成脚本

使用数据库脚本的方式保存,右键某个数据库 ->任务 ->生成脚本

501c6e2c86ab695b9f2c82e4df1b3ac4.png

下一步,选择为整个数据库及所有数据库对象编写脚本(E),下一步,点击高级,下拉,找到要编写脚本的数据的类型,选择架构和数据;

注:之所以要选择架构与数据,是为了把表结构和表中数据都保存下来;简单理解,架构即表结构,数据即表中数据。

f52d922a62d363c53893bbe04ffdc487.png

勾选另存为脚本文件,然后自行选择路径并添加文件名,如下。

e8ee31f0452b234d75de7870e7dcbc40.png

然后就一直点下一步,如下即说明脚本生成成功,点击完成即可

c94001d78c21b21eb39bb1dc330b06cb.jpeg

3.2 还原

同样,当数据库中数据出现丢失或损坏时,就可以进行还原操作。

找到我们的SQL脚本文件,右键,打开方式选择SQL Server默认的SSMS 管理工具,点击执行,完成后刷新数据库,就能看到还原的数据库了。

fd857607ab2d7b38010668b458b63555.png

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

SQL Prompt:高效开发的SQL Server数据库必备插件!

Docker有哪些常见命令?什么是Docker数据卷?

支付宝红包又来了!!这次真的非常大!

五一快乐!!假期红包大放送!超大超多红包送不停,福气多多~手慢无!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐