【问题标题】:Unresolved references in Microsoft Visual Studio SQL Database projectMicrosoft Visual Studio SQL 数据库项目中未解决的引用
【发布时间】:2011-05-11 04:56:08
【问题描述】:

我在 Visual Studio 中有一个 MS 数据库项目 -- 在进行 Schema 比较后,我正在尝试生成一个部署脚本,问题是我收到数百个未解决的引用错误,例如以下两个:

Error   385 TSD03006: View: [auditing].[AuditedEntities] has an unresolved reference to object [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS].  D:\greatProject\Database\greatProject.Database\Schema Objects\Schemas\auditing\Views\AuditedEntities.view.sql   4   14  greatProject.Database
Error   387 TSD03006: View: [auditing].[AuditedEntities] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS].[C]::[CONSTRAINT_NAME], [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS].[CONSTRAINT_NAME] or [INFORMATION_SCHEMA].[TABLE_CONSTRAINTS].[C]::[CONSTRAINT_NAME].  D:\greatProject\Database\greatProject.Database\Schema Objects\Schemas\auditing\Views\AuditedEntities.view.sql   5   69  greatProject.Database

SPROCS 在运行时不会出现问题。有没有一种快速而肮脏的方法来解决这个问题?甚至可以关闭参照完整性检查?

【问题讨论】:

    标签: sql-server visual-studio database-project gdr


    【解决方案1】:

    您的数据库项目缺少对 master 数据库的引用。

    假设您正在谈论一个SQL Server Data Tools (SSDT) 数据库项目,您可以添加缺少的引用,如下所示:

    1. Solution Explorer 中,打开 References 节点上的上下文菜单并从中选择 Add Database Reference...

    2. 在打开的对话框窗口的上部,选择系统数据库选项并从下拉列表中选择master

    3. 最后,按下 OK 按钮。现在应该将数据库引用添加到您的项目中。

    【讨论】:

    • 这行得通。微软在这里给出了同样的答案:connect.microsoft.com/SQLServer/feedback/details/787152/…
    • 如果引用的是另一个在解决方案之外有自己项目的现有数据库怎么办?如果我将引用添加为 .dacpac,另一个数据库也会更新吗?
    • @Muflix:我建议您将其作为一个单独的问题发布。
    【解决方案2】:

    我添加了对master数据库的引用来解决这个错误,可以通过以下步骤来实现。

    1. 右键单击数据库项目下的引用
    2. 点击Add Database Reference...
    3. 单击“数据库项目架构 (.dbschema)”单选按钮
    4. 浏览到

      C:\Program Files\Microsoft Visual Studio 9.0\VSTSDB\Extensions\SqlServer\2008\DBSchemas\master.dbschema

    5. 点击确定

    以下问题是相关的。 ASP.NET Schema Tables Causing Issues in VSTS

    【讨论】:

    • 这个答案不适用于我的环境(VS 2013);所描述的路径不存在。 stakx 的答案对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2014-11-01
    相关资源
    最近更新 更多