我想备份 SQL 2012 并在 2008 上恢复,可以吗?
我有这些选项,但无法在 DB 上更改。谢谢
答案1
不,不可能。兼容级别讨论的是 SQL 的行为方式,而不是数据库内部格式。
我建议你开始标准化你的服务器。这个要求指向一些极具争议的决定——要么运行过时的备用机器,要么在没有规划的情况下升级生产机器。
答案2
SQL Server 不允许降级到旧版本
您可以在 2012 实例中使用任务->导出向导,创建一个空数据库,并在 2008 实例中使用导入向导,但这可能不是理想的解决方案,因为导出/导入向导不会恢复所有对象(它将复制表但不复制索引、键等)
有关更多可能的选项和解释,您可以参考本文: 为什么无法将数据库还原到 SQL Server 的旧版本?
文章中建议的选项是:
-将旧版本的 SQL Server 升级到与新版本的 SQL Server 处于同一级别。
- 从较新的数据库中编写出对象脚本,然后使用 bcp 过程从较新的数据库中提取数据并将其导入较旧的数据库。
-使用 SQL Server 导入和导出向导构建 SSIS 包来移动数据(它将仅移动数据)。
- 构建自定义 SSIS 包来执行数据移动。
-使用复制将数据从新数据库移动到旧数据库。
-使用其他形式的脚本(例如 PowerShell)来保持数据库同步。
另一种选择是使用第三方工具,ApexSQL 差异和ApexSQL 数据差异
您可以在本文中阅读该过程的详细解释:将 SQL Server 数据库备份还原到旧版本的 SQL Server
其他第三方工具也可能有帮助
希望这可以帮助
免责声明:我是 ApexSQL 的支持工程师