我正在尝试使用涉及链接服务器的数据层应用程序并遇到一个奇怪的问题。
这就是我所拥有的:
1)包含数据层项目的VS2010解决方案。
2)Data-Tier项目以SQL 2008 R2服务器为目标。
3)SQL服务器与Oracle数据库有一个工作链接服务器连接。
4)Data-Tier项目中的视图使用OPENQUERY
引用链接服务器链接服务器连接有效,在服务器上对它运行查询工作正常,并且直接在服务器上创建视图也可以正常工作。
但是,每当我尝试构建我的Data-Tier应用程序时,都会收到以下错误:
SQL03006: View: [dbo].[vwMyExampleView] has an unresolved reference to object [MyExampleLinkedServer].
答案 0 :(得分:1)
基本上问题是SQL Server数据库项目无法解析到Oracle数据库表的链接。
在尝试引用同一服务器上不同数据库中的表时,我遇到了类似的问题。在我的情况下,我使用SQL Server作为两个数据库,并为另一个数据库创建了一个数据库项目,将其添加到第一个项目的解决方案中,然后从第一个项目创建了对第二个项目的引用。我还在同义词中使用了SQLCMD变量,这样我就可以更改同义词,并且不需要更新所有的proc和view引用。
我不确定这在SQL Server和Oracle之间是否可行,因为Visual Studio数据库版本仅支持SQL Server。 (AFAIK)您可以通过创建.dbschema文件并将数据库引用添加到SQL Server项目来找到解决方案。
可在此链接找到更多详细信息:
答案 1 :(得分:1)
在SQL 2012中,只需添加新项 - >服务器对象 - > LinkServer,添加创建链接服务器的sp代码,你很高兴