2011-10-04 28 views
12

Ayrı bir veritabanında (aynı sunucuda yer alan) tablolara başvurmak için kullanılan birkaç eş anlamlı var.Visual Studio 2010 Veritabanı Projesi - Bir Eşanlamlıya Çözümlenmemiş Referans

gerçek eş iyi, ancak referans eş aşağıdaki hata gösteren adı geçen saklı procs/kullanıcı tanımlı fonksiyonlar:

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] bir fonksiyonudur ve [dbo].[EMPLOYEES] eşanlamlıdır.

Bunların hepsi gerçek veritabanının kendisinde iyi çalışır - sorun yalnızca veritabanı projesiyle ilgilidir. Ben (yeni bir veritabanı projesi veya bir veritabanı projesi şeması yoluyla ya) ayrı veritabanına bir başvuru ekleyerek çalıştı, ama sonra eşanlamlı ve referans tablosuyla çatışma sorunları var ettik:

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 

bir fikir? Oluşturma komut dosyalarının Script.PostDeployment.sql içine yerleştirilmesinden söz eden bir başka stackoverflow yazısında bahsedilen geçici bir çözüm var - bana biraz fazla rahatsız edici geliyor.

cevap

8

Bunun nedeni arayan veritabanında bağımlı veritabanına bir başvuru eklemeniz ve veritabanı adı için de bir değer belirtmeniz gerektiğinden gerçekleşir. aşağıda Bak: Ben aynı sunucuda başka bir veritabanına işaret tablo eş anlamlı aynı sorun var

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

:

Database reference

Sonra aşağıdaki kodu kullanarak eşanlamlı oluşturabilir ana veritabanı Referans çalışmaların hemen hemen her şey için eklenmesi, ancak sıralı tablo değerli işlevler. Böyle bir işlevle eş anlamlı olarak

kullanmayı denediğinizde hata geri döndürülür. SSDT 2013 Güncelleme 4 benim versiyonum. 2016'da böyle bir hatanın hala bizimle olması inanılmaz bir şey. Eşanlamlıların özdeşleştirilmesi, bağımlılıkların soyutlanması için ana mekanizma olduğundan, kesintisiz olmalıdır. Hala düzeltilmediğine inanamıyorum.