更新 – 我发现使用MSDN文章“ 如何:使用分离和附加移动数据库(Transact-SQL) ”手动分离/重新附加了解决此问题。 我只是创build一个脚本来解开并重新附加,但手动执行文件复制。 有关如何克服向导问题的任何信息将有助于未来。
我正在从目前的服务器上移动20个数据库到一个新的。 但是,在执行副本时,我发现某些数据库如果具有尚未复制到目标系统的其他数据库的视图,则无法复制。
生成的日志文件显示“失败,出现以下错误:”无效的对象名称“在引用视图中的数据库。如果我第一次复制视图中引用的数据库,然后在一个单独的步骤复制包含视图的数据库它是成功的,但是一些其他的数据库有相互的意见,所以不能只是调整复制的顺序。
有什么办法可以忽略这个错误,只允许一切复制?
当我尝试在sql server 2008中使用复制数据库向导时遇到了类似的问题。当它试图复制一个依赖另一个视图的视图时,我会得到“无效的对象名称”错误。 要修复这些错误,我使用了sp_refreshview存储过程来刷新每个视图的依赖信息。 我必须按照创build依赖关系的顺序在视图上执行它。 例如,如果我有三个视图a,b和c和c依赖于b,然后依赖于一个然后我将需要执行:
EXECUTE sp_refreshview 'a'; EXECUTE sp_refreshview 'b'; EXECUTE sp_refreshview 'c';