sql server:如何加载损坏的视图

sql server:如何加载损坏的视图

我有一个旧数据库服务器,其中安装了许多未进行架构绑定的视图。随着时间的推移,这些视图已经失修,有些引用的对象不再存在,或者引用的名称已更改的列。

为了测试升级脚本,我想将架构对象安装到一个空的测试数据库中。但是,许多视图无法加载,因为它们处于失修状态。

是否可以让 SQL Server 加载引用不存在对象的视图,以便我可以测试我的修复脚本?

我可以使用备份和恢复来做到这一点,但我不想加载庞大且需要数小时才能加载的数据集。

答案1

您可以备份数据库并将其恢复为新名称,删除所有表中的数据,强制重新索引并完全缩小数据库,然后在每次测试运行开始时备份结果以进行恢复。

这将为您提供一个小型的无数据数据库,其结构与损坏的视图和程序相同。您仍然需要备份和恢复所有数据,但只需执行一次,因为后续恢复将从已擦除和缩小的副本中进行。删除操作也需要一段时间,但同样只需要执行一次(重新索引和缩小应该非常快)。

答案2

我认为您无法做到这一点。为什么不将视图创建添加到测试脚本中?如果整个脚本成功运行,那么您的架构更改就解决了问题。

我认为早期版本的 SQL Server 允许直接修改 syscomments 表,这可能有效,但现在不再有效。

相关内容