12

我有一个在 VS2008 中创建的 SQL Server CLR 触发器项目。在 VS2012 中打开项目不会出现任何问题,但是在构建解决方案时,我收到 SQL71501 错误,其中 Trigger: [...] has an unresolved reference to object [...]。

根据我的阅读,这是由于项目中缺少数据库引用。当我尝试添加数据库引用时,我得到了“添加数据库引用”对话框,其中提供了三个选项:

  • 当前解决方案中的数据库项目 ** 此选项灰显/禁用
  • 系统数据库(仅显示系统数据库)
  • 数据层应用程序 (.dacpac) ** 没有选项可供选择,因为这不是我创建项目的方式。

进一步阅读表明,没有为第一个选项选择数据库项目的原因是因为没有通过服务器资源管理器添加数据连接。就我而言,肯定存在数据连接,当我的项目打开时,我可以很高兴地浏览数据库、查看数据等。

我认为它可能与Target Framework有关,所以我尝试定位3.5甚至2,但出现同样的问题。

我觉得我错过了一些基本的东西,但无法完全解决。任何帮助将不胜感激。

4

3 回答 3

9

我看到此对话框未启用“确定”按钮,因为它默认的数据库变量无效(在我的情况下,它有一个“。”)。

这是错误的线索是“示例用法”字段中的文本包含错误消息 - 很难看到,因为它是浅灰色的深灰色。

编辑数据库变量名称可以解决此问题。

于 2013-10-11T02:58:51.977 回答
6

我为此找到了一个workarroud,不是最佳的,但至少它有效:

试试这个 - 打开 sql server 对象资源管理器 - 创建一个到您的服务器的新连接 - 右键单击​​数据库并选择创建新项目... - 向导将创建带有所有引用和连接字符串的项目。

干杯!

于 2012-08-16T23:29:19.130 回答
0

我改变了答案

问题是您不能假设插入是单行,并且您实际上只能将主键作为触发器内的单个值引用

于 2014-09-17T19:59:49.583 回答