【问题标题】:SQL71501: Trigger: [dbo].[TriggerName] has an unresolved reference to object [dbo].[TableName]SQL71501:触发器:[dbo].[TriggerName] 对对象 [dbo].[TableName] 有一个未解析的引用
【发布时间】:2014-04-24 10:56:15
【问题描述】:

我有一个带有一些函数和触发器的 SQL 项目。

在 Visual Studio 2010 中,我可以只指定数据库连接字符串,然后进行部署。这效果很好。

但是现在在迁移到 Visual Studio 2013 之后,当我尝试构建项目时,在生成的 sql 文件中出现了很多这样的错误:

SQL71501: Trigger: [dbo].[TriggerName] has an unresolved reference 
to object [dbo].[TableName]

应该如何解决这个问题?

【问题讨论】:

  • 您的架构项目是否有 [dbo].[TableName] 的脚本? VS2013 现在正在项目中验证整个架构。
  • @Erik Dekker,您能否解释一下您是如何使用 Visual Studio 2010 部署您的 SQL CLR 项目以及您使用的是哪个 SQL Server。实际上,我正在尝试做同样的事情,但遇到了错误。这是我的 stackoverflow link 了解更多信息。
  • 如果您已解决,请在此处回复您自己的问题。
  • 您好,我们仍然在 VS2010 中工作,我们使用 SQL Server 2008 R2。但是你的问题和我们的完全不同。我们只在 VS 2012 及更高版本中遇到问题,因为那里的行为发生了变化,我们现在需要一个完整的架构来验证。

标签: sql-server-2008-r2 visual-studio-2013 clr sqlclr


【解决方案1】:

您必须在 Visual Studio 中为触发器表导入数据库。 转到项目>导入>数据库...。请注意,如果菜单中禁用了 [数据库...] 选项,请尝试关闭解决方案并重新打开它。 现在在编译项目之前,请导入包含与您的触发器相关的表的数据库。它应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    与“SQL71501:未解决的对象引用”有类似的问题。事实证明 .sql 文件没有以 Visual Studio 预期的方式添加到项目中。对于遇到的情况,修复方法是从项目中“排除”.sql 文件,然后将该文件重新“添加”到数据库项目中作为“现有项目”。这导致引用被解析。

    【讨论】:

      【解决方案3】:

      删除CREATE TRIGGERsql中dbo前的数据库引用,则验证会成功,因为Visual Studio会正确引用本地项目中的表。

      【讨论】:

        猜你喜欢
        • 2019-09-08
        • 1970-01-01
        • 1970-01-01
        • 2019-03-23
        • 2019-01-04
        • 2010-11-22
        • 2019-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多