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

标签 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 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 中。 - 对我来说听起来有点太hacky了。

最佳答案

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

Database reference

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

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

关于visual-studio-2010 - Visual Studio 2010 数据库项目 - 未解析的同义词引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642874/

相关文章:

visual-studio-2010 - 使用Microsoft Visual Studio 2010 Express编译WSDL PULL

c# - 为什么 Visual Studio 2010 在单步执行 C# 代码时以 C++ 模式进行 pretty-print ?

sql-server-2008 - 数据迁移与VS2010数据库项目

c# - VS2010添加.dll引用错误

visual-studio-2010 - 如何在安装和部署项目中包含依赖项?

silverlight - 在 WP7 Silverlight WebBrowser 控件中调用 NavigateToString 时如何避免闪烁

visual-studio - SQL Server 数据库项目属性中的本地和默认 SQLCMD 变量有什么区别?

sql-server - Visual Server 数据库项目数据移动脚本在不同版本的数据库上运行

visual-studio - 数据库部署 (vsdbcmd.exe) : DatabaseName and DefaultDataPath are ignored?

.net - 具有多个部署的 VS2010 数据库项目