我有一个大型数据库,必须在一个旧的SQL Server实例上重新创建。该数据库保持了与旧服务器相对应的兼容性级别设置。我知道,这并不能保证完全的向后兼容,但数据库模式最初是以旧服务器版本为中心创建和维护的。
下面是我尝试过的方法。
Microsoft.SqlServer.Management.Smo.SmoException: Cyclic dependencies found.
. 在旧的SQL Management Studio (2008)上,它不会失败,但会生成一个对象顺序错误的脚本,因此视图在视图中引用的表之前被创建,当然,执行这样的脚本会失败。Cannot generate deployment plan due to an internal error: An error occurred during deployment plan generation. Deployment cannot continue.
有没有一个可行的(最好是--免费的)解决方案来解决这个问题?如何在另一台服务器的空数据库上复制数据库模式?
来源SQL服务器版本:2017
目标SQL服务器版本:2008 R2
数据库兼容性级别:2008(100)
利用 IF NOT EXISTS
构造和批次分离器(GO
)允许您多次运行您的脚本。
在第一次尝试时,一些对象可能不会被创建,但这些错误不会妨碍脚本的其余部分的执行。
多次运行脚本,直到没有更多的错误返回,将创建所有对象。
声明:来自个人经验。