SQL Server数据库降级记录
近期需要将一个SQL Server 2012数据库降级到SQL Server 2008,记录一下过程。
direwolf
2024-12-16 0

近期需要将一个SQL Server 2012数据库降级到SQL Server 2008,记录一下过程。

0x00 先决条件

  • 两个不同版本的数据库实例
  • 高版本的数据库
  • SSMS

0x01 步骤

导出数据库结构

连接到高版本数据库,右键需要降级的数据库,点击任务-生成脚本。

2024-12-16T08:23:32.png

按需要选择,这里保持默认的为整个数据库生成。

2024-12-16T08:27:46.png

重点1:点击高级,修改脚本的目标SQL Server版本!毕竟你也不想生成出来给低版本用的脚本用了高版本特性吧?

保存方式选择另存为脚本文件。

2024-12-16T08:31:10.png

下一步,完成,等待脚本生成就可以了。有些SSMS版本有bug,最后一步保存到文件会一直显示未进行。如果等个几分钟还是卡在这里,并且脚本已经生成出来了,那就可以直接关闭这个窗口,进行下一步。

最后按需要对脚本进行一些修改,如数据库的文件路径、数据库名、用户、schema等。

导入数据库结构

连接到低版本数据库,执行刚刚生成出来的SQL。

可能会有报错,这个就需要自己检查是不是真的有问题了。

转移数据

连接到高版本数据库,右键需要降级的数据库,点击任务-导出数据。

2024-12-16T08:42:41.png

配置导出数据(高版本)的数据源,数据源选择SQL Server Native Client,其他信息应该会自动填好。

2024-12-16T08:43:50.png

配置导入数据(低版本)的数据源,数据源同样选择SQL Server Native Client,填写连接信息及需要导入的数据库。

2024-12-16T08:57:01.png

降级的场景需要把数据原样导过去,选第一个就行。

2024-12-16T08:58:32.png

选择需要导的表。重点2:这个列表里有视图,但是不要选择视图!刚才导数据库对象的时候已经把视图导过去了,这里选视图会报错。

如果需要的话,点击编辑映射按钮,可以映射schema。还可以选择导数据之前重建表或清空表,不过由于整个库都是新建的,没有必要。

如果碰到只读列,可勾选启用标识插入试试。

2024-12-16T09:01:03.png

然后下一步,完成,等数据导过去就完工了。

评论 0
没有评论
评论已关闭
发表评论
评论 取消回复
Copyright © 2024 .direwolf