1、相同SQL Server版本(2008为例)之间数据库备份与还原
(1)数据库备份
相同SQL Server服务器版本之间数据库的备份还原操作相对来说比较简单。
首先找到需要备份的数据库实例,【右键】->【任务】->【备份...】,界面下边选择备份路径,点击确定,备份成功后即可在选择的备份路径下找到后缀名为.bak的备份文件。
(2)数据库还原
对于需要还原的.bak数据库文件,一般会先拷贝到
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\ 路径下边。
然后打开本地数据库连接,选择“数据库”,【右键】->【还原数据库】,“还原目标”选择(或创建)目标数据库,“还原的源”选择源设备,添加需要还原的.bak数据库文件,勾选“选择用于还原的备份集”记录。在界面左侧“选择页”目录树中共有两个节点:常规、选项。在选项操作界面,“将数据库文件还原为”中用来指定将需要还原的数据库以及日志文件还原到指定路径,一般为C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data,这个路径如果输入的不合法的话,在还原指定数据库文件时将会报错。
2、低SQL Server服务器版本(2005 / 2000)的备份数据库文件,还原到高版本(2008为例)服务器
由于软件的向上兼容原则,对于低版本的数据库文件,还原到高版本服务器时,操作与相同版本类似,在此不在赘述。
3、高SQL Server服务器版本(2008为例)的备份数据库文件,还原到低版本(2005为例)服务器
这种情况相对来说是比较麻烦的,不能再使用常规的备份与还原方法,备份高版本数据库时需要将其实例导出为SQL脚本,然后在低版本新建一个数据库,然后新建查询,执行之前导出的SQL脚本。
(1)如何将指定数据库导出为SQL脚本?
选择需要导出的数据库实例,【右键】->【任务】->【生成脚本...】,使用生成SQL Server脚本向导,【下一步】->【下一步】选择数据库实例,界面下方勾选“为所选数据库中的所有对象编写脚本”->【下一步】选择脚本选项,该界面有一些细节需要注意,这里主要包括两个选项:表/视图选项和常规选项,在表/视图选项,需要将“编写数据脚本”和“编写索引脚本”更改为true,其他默认即可,如果不放心,可以将该选项中所有项都勾选为true;在常规选项,“为服务器版本编写脚本”中更改需要还原数据库服务器的版本(例如SQL Server 2005)->【下一步】输出选项,脚本模式中选择“将脚本保存到文件”,指定保存路径与SQL脚本文件名即可。
(2)将高版本导出的SQL脚本还原到低版本数据库实例中
在低版本(SQL Server 2005)服务器中新建数据库,然后在查询界面执行之前导出的SQL脚本。
注意:有时候在将SQL Server 2008中的数据库导出为SQL Server 2005 SQL脚本时,会出现一些数据类型不支持错误,例如在SQL Server 2008数据库中如果存在Date类型字段,而这个数据类型在2005中是不支持的,那么导出脚本时将会出现错误,这时常规方法是将Date类型字段修改为2005所支持的datetime字段。
4、将指定的表(带数据)导出为SQL脚本文件
选择需要导出的数据库实例,【右键】->【任务】->【生成脚本...】,使用生成SQL Server脚本向导,【下一步】->【下一步】选择数据库实例->【下一步】选择脚本选项,在“表/视图选项”中将“编写数据的脚本”更改为true,“常规”中“为服务器版本编写的脚本”选择对应的服务器版本->【下一步】选择对象类型,勾选“表”->【下一步】选择表,勾选需要导出的表>【下一步】输出选项,脚本模式中选择“将脚本保存到文件”,指定保存路径与SQL脚本文件名即可。