Visual Studio 2012 数据库项目中未解决的引用

Posted

技术标签:

【中文标题】Visual Studio 2012 数据库项目中未解决的引用【英文标题】:Unresolved Reference in Visual Studio 2012 Database Project 【发布时间】:2013-06-19 14:10:52 【问题描述】:

有没有办法从我的数据库项目中引用另一个数据库而不直接引用它?

例如,我希望能够写出这样的东西:

CREATE VIEW View1
AS
  SELECT X FROM OtherDB.dbo.Table1

【问题讨论】:

【参考方案1】:

最好的办法是为您的项目添加一个数据库引用。对于 VS2010 和更低版本的 DBProj 文件,您需要生成一个 dbschema 文件并将其添加为数据库引用。对于 SSDT,您需要使用 dacpac 文件。这适用于大部分是静态的项目,您甚至可以对其进行裁剪以仅包含相关的对象。

VS2010, 2008 - http://msdn.microsoft.com/en-us/library/dd193283%28v=VS.90%29.aspx 具有将现有数据库导出到 dbschema 文件所需的文档。将其放置在您的项目可以访问的地方,并将其添加为“数据库引用”。

SSDT - http://msdn.microsoft.com/en-us/library/hh550080%28v=VS.103%29.aspx 为您提供生成 dacpac 文件的命令行参考。生成后,将其放置在您的项目可以访问的地方并添加为数据库引用。

我在这里有一篇关于 SSDT 的博文:http://schottsql.blogspot.com/2012/10/ssdt-external-database-references.html

【讨论】:

是的,我知道这个选项,但我只是想创建视图而不进行任何检查。我认为必须有办法关闭此错误 您可以关闭丢失对象的警告,但您可能无法在没有参考的情况下进行部署。您也可以将其添加为部署后脚本,但它不会以这种方式显示为您可以在项目中使用的东西。 如何关闭警告? 我曾尝试从 SSMS 中的上下文任务菜单为此数据库创建 DACPAC,但一直失败。经过数天手动导入包含数万个对象的数据库后,我在这里偶然发现了您的回复并尝试了命令行工具。像魅力一样工作!现在想知道为什么这有效而 SSMS 方法无效。 希望我能确定,但​​我经历了类似的练习,直到我意识到命令行“正常工作”。 :) 很高兴你现在有一个工作参考。请记住,如果您需要对其进行编辑以进行调整,它只是一个重命名的 ZIP 文件,但一旦您有了工作版本,您就可以使用构建中的 dacpacs。

以上是关于Visual Studio 2012 数据库项目中未解决的引用的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 数据库项目中未解决的引用

在 Visual Studio 2012 数据库项目中更新数据库架构

如何在 Visual Studio 2012 数据库项目下的智能感知中获取表名?

Visual Studio 2012 数据库项目 - 文件路径配置

Visual Studio 2012 - 数据库项目 - 设置发布的默认配置文件

Visual Studio 2010 项目到 Visual Studio 2012