Sql 使用复制向导时更改兼容性级别

Sql 使用复制向导时更改兼容性级别,sql,sql-server,sql-server-2008,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008,Sql Server 2008 R2,如果Sql Server 2008 R2数据库中的兼容性级别更改为2005,复制数据库向导能否在2008 R2到2005年间复制数据库而不出现任何问题 或者生成脚本是将2008 R2数据库复制到2005数据库的唯一方法。我不相信您可以使用复制向导将数据库降级回2005。然而,数据导入。。。SSMS中的任务应该能够帮助您移动数据表和视图。(基本上,它创建一个SSIS包来传输表定义和数据) 但是,如果您想真正移动数据库,脚本是您最好的选择。您还可以从Red Gate中查看工具,如SQLCompare

如果Sql Server 2008 R2数据库中的兼容性级别更改为2005,复制数据库向导能否在2008 R2到2005年间复制数据库而不出现任何问题


或者生成脚本是将2008 R2数据库复制到2005数据库的唯一方法。

我不相信您可以使用复制向导将数据库降级回2005。然而,数据导入。。。SSMS中的任务应该能够帮助您移动数据表和视图。(基本上,它创建一个SSIS包来传输表定义和数据)


但是,如果您想真正移动数据库,脚本是您最好的选择。您还可以从Red Gate中查看工具,如SQLCompare和SQLDataCompare。

只是因为兼容性级别设置为低于当前版本的值并不禁止您使用较新的功能。它所做的只是停止强制删除特性,以保持现有代码的向后兼容性。由于您可以在2008数据库中使用新的数据类型和功能,因此如果不分析使用了哪些新功能,就无法直接复制到2005

如果您是在2008年开发,而prod是2005年,那么您需要立即停止这种做法。否则,在尝试发送到prod之前,您将浪费大量时间使用新功能而没有意识到这一点

数据库更改通常只能通过脚本完成,因为您不想冒删除和重新创建包含现有数据的表的风险。此外,数据库更改脚本应该与任何其他代码一样位于您正在部署的版本的源代码管理中。在脚本中进行更改的一部分是,随后在prod上运行的脚本已经在dev和QA上进行了测试