У нас есть пара синонимов, которые используются для ссылки на таблицы в отдельной базе данных (которая находится на том же сервере).
Фактические синонимы в порядке, но сохраненные процедуры / определенные пользователем функции, которые ссылаются на указанные синонимы, показывают следующую ошибку:
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
{{1 }} [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
- мне кажется, это звучит слишком хакерски.