Visual studio 2010 Visual Studio 2010数据库项目-对同义词的未解析引用

Visual studio 2010 Visual Studio 2010数据库项目-对同义词的未解析引用,visual-studio-2010,database-project,Visual Studio 2010,Database Project,我们有两个同义词,用于引用单独数据库(位于同一服务器上)中的表 实际同义词没有问题,但引用所述同义词的存储过程/用户定义函数显示以下错误: Error 13 SQL03006: Column: [dbo].[GetCocosIndexSearched].[User ID] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous

我们有两个同义词,用于引用单独数据库(位于同一服务器上)中的表

实际同义词没有问题,但引用所述同义词的存储过程/用户定义函数显示以下错误:

Error   13  SQL03006: Column: [dbo].[GetCocosIndexSearched].[User ID] 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: [dbo].[AuditType].[e]::[LOGIN_ID], [dbo].[EMPLOYEES].[e]::[LOGIN_ID], [dbo].[EMPLOYEES].[LOGIN_ID] or [dbo].[SearchCIBirthsRequest].[e]::[LOGIN_ID].    C:\VSTS\Corporate\WARS Audit\MAIN\Source\RBDM.Audit.Database\Schema Objects\Schemas\dbo\Programmability\Functions\GetCocosIndexSearched_1.function.sql  21  5   RBDM.Audit.Database
[dbo].[GetCocosIndexSearched]
是一个函数,
[dbo].[EMPLOYEES]
是同义词

这些都在实际数据库本身中工作得很好-问题完全在于数据库项目。我曾尝试向单独的数据库添加引用(通过新的数据库项目或数据库项目架构),但随后与同义词和引用表发生冲突:

Error   7   SQL04105: The model already has an element that has the same name dbo.EMPLOYEES.    C:\VSTS\Corporate\WARS Audit\MAIN\Source\RBDM.Audit.Database\Schema Objects\Schemas\dbo\Synonyms\EMPLOYEES.synonym.sql  2   1   RBDM.Audit.Database

有什么想法吗?在另一篇stackoverflow文章中提到了一种解决方法,该文章讨论了将创建脚本放置在
Script.PostDeployment.sql
-听起来有点太老套了。

发生这种情况是因为在调用方数据库中,必须添加对依赖数据库的引用,并为数据库名称指定一个值。 请看下面:

然后,可以使用以下代码创建同义词:

CREATE SYNONYM [dbo].[mytable] FOR [$(MasterDatabase)].[dbo].[mytable]

对于指向与主数据库位于同一服务器上的另一个数据库的表同义词,我也有同样的问题。除了内联表值函数外,添加引用几乎适用于所有函数。只要你尝试使用同义词

create synonym syn.Table for [$(MyDb)].[dbo].[Table];

在这样的函数中,错误又回来了。SSDT 2013更新4是我的版本。令人难以置信的是,在2016年,这样的错误依然存在。处理同义词应该是无缝的,因为这是抽象依赖项的主要机制。真不敢相信它仍然没有被更正。

如何显示“添加数据库引用”窗口?从哪个菜单?我也找不到。您必须右键单击数据库项目下的“引用”。这里有“添加数据库引用”。