簡體   English   中英

Visual Studio 2010數據庫項目 - 未解析的同義詞參考

[英]Visual Studio 2010 Database Project - Unresolved Reference to a Synonym

我們有幾個同義詞用於引用單獨數據庫中的表(位於同一服務器上)。

實際的同義詞很好,但引用所述同義詞的存儲過程/用戶定義函數顯示以下錯誤:

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 - 對我來說聽起來有點過於Script.PostDeployment.sql

發生這種情況是因為在調用者數據庫中,您必須添加對依賴數據庫的引用,並同時指定數據庫名稱的值。 往下看:

數據庫參考

然后,您可以使用以下代碼創建同義詞:

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

我有同樣的問題,表同義詞指向與主數據庫在同一服務器上的另一個數據庫。 添加引用幾乎可以用於除了內聯表值函數之外的所有內容。 只要您嘗試使用同義詞

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

在這樣的功能中,錯誤又回來了。 SSDT 2013 Update 4是我的版本。 令人難以置信的是,2016年這樣的錯誤仍然存​​在於我們身上。 處理同義詞應該是無縫的,因為這是抽象依賴關系的主要機制。 不敢相信它仍然沒有得到糾正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM