VS 2010构建数据库项目时收到SQL04151错误

13

我刚刚开始使用Visual Studio 2010 Premium数据库项目,我必须说它确实很好用。但有一件事我搞不清楚,就是如何避免SQL04151警告。

过程:[dbo].[MyProc]有一个未解析的对象引用[MyDatabase] . [dbo]。[MyItem]。

我错过了简单的步骤吗?我在网上找到的所有信息都涉及tempdb。


如果[MyDatabase]是[dbo].[MyProc]所在的同一数据库,删除[MyDatabase](或[$(DatabaseName)])前缀可能更有优势。如果您在同一服务器上安装多个实例,例如测试或开发环境,您将无法获得预期的结果,甚至可能没有意识到,因为引用可能会中断或在引用错误实例时工作。 - JM Hicks
4个回答

14
我需要将 [MyDatabase].[dbo].[MyTable] 替换为 [$(DatabaseName)].[dbo].[MyTable]。这样可以消除警告。
感谢您的帮助。

7
将此项标记为正确答案将把它移动到页面顶部,这将使其他人以后更容易找到。 - Pedro
经历了完全相同的问题,这个解决方法很有用,谢谢。 - VikingProgrammer

3

在您的[dbo].[MyProc]存储过程中,您引用了[MyDatabase].[dbo].[MyItem],这可能不是您的数据库项目的一部分。即使对象存在于数据库中,但在编译期间,Visual Studio不知道它的存在,因此会产生错误。

通常情况下,您应该将整个数据库模式包含在数据库项目中。否则,我认为您可以研究一下"部分数据库项目"。


实际上,所有对象都是 DB 项目的一部分。存储过程在 MyDatabase 中。我创建项目时接受了默认设置,但我认为我在其中漏掉了一些东西。 - beezler

2

链接已损坏。请从URL末尾删除“?wa=wsignin1.0”。 - Bernhard Hofmann
我看不出这与什么有关?OP没有提到tempdb。 - cdonner

0
请检查您已在指定对象的属性面板上将构建操作设置为构建

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接