【发布时间】:2011-08-12 08:30:58
【问题描述】:
我在使用 Visual Studio 2010 数据库项目构建的新数据库中工作,该数据库定义了许多 同义词,它们指向我们的旧版 strong> 数据库。
我们的计划是针对这些同义词创建视图;被引用的表很糟糕,所以视图会将数据破坏成更好的格式;之后,我们将使用 Entity Framework 为这些视图提供 ORM(想法是我们可以在迁移数据时将视图交换为真实表)。
问题:我可以毫无问题地编写数据库项目中的同义词。但是,当我尝试创建一个引用这些同义词的视图时,我遇到了类似于以下内容的错误:
Error 1 SQL03006: View: [dbo].[Person] has an unresolved reference to object [dbo].[ma_contact].
...其中[dbo].[Person] 是新视图,[dbo].[ma_contact] 是旧表的同义词。
解决方法:将所有视图创建脚本放在Script.PostDeployment.sql 中,手动执行 if-exists-then-drop-then-create 逻辑。
这不太理想,虽然它现在适合居住。有人对如何“正确”执行这些视图有任何想法吗?
【问题讨论】:
标签: visual-studio-2010 deployment database-project