Неразрешенная ошибка ссылки при создании dacpac из SSMS - PullRequest
0 голосов
/ 26 сентября 2018

У нас есть одна табличная функция, которая вызывает сбой dacpac при создании с ошибкой SQL71561 (неразрешенная ссылка).Как и многие другие функции в той же базе данных, эта ссылается на таблицу в другой базе данных на том же сервере.В отличие от других функций, эта постоянно приводит к сбою dacpac.

Я пытался использовать имена из четырех частей для ссылки на таблицу, и я также создал синоним.Ни то, ни другое не работает, и я сейчас в полной растерянности.Я не могу найти достаточно информации в Интернете и не получаю достаточного количества отзывов от SQL, чтобы правильно устранить ошибку.Может ли кто-нибудь помочь направить меня в правильном направлении?

Подробности ниже:

У нас есть один экземпляр SQL Server 2014 enterprise, который содержит 3 отдельные базы данных с именами [dbParks], [dbLandmarks] и [dbPeople].Имя сервера - [sCity2].

Внутри базы данных [dbParks] есть табличная функция [fn_GetEmployeeList], которая содержит ссылку на [dbPeople]. [Dbo]. [Employees].Эта функция постоянно выдает ошибки:

Ошибка SQL71561: Ошибка при проверке элемента [dbo]. [Fn_GetEmployeeList]: Функция: [dbo]. [Fn_GetEmployeeList] содержит неразрешенную ссылку на объект.Либо объект не существует, либо ссылка неоднозначна, поскольку он может ссылаться на любой из следующих объектов: [sCity2]. [DbPeople]. [Dbo]. [Employees]. [A] или [sCity2]. [DbPeople].[dbo]. [Employees]. [EmployeeCode].

Я обновил функцию (ниже), чтобы использовать имя из 4 частей вместо имени из 3 частей при обращении к таблице, и это все ещеошибка:

CREATE FUNCTION [dbParks].[dbo].[fn_GetEmployeeList] ( )
 RETURNS TABLE
 AS 
 RETURN (
         SELECT 
              a.EmployeeCode,
              a.MunicipleCode,
              a.FullName,
              a.Supervisor
          FROM  
              [sCity2].[dbPeople].[dbo].[Employees] a
         )
 GO

Затем я создал синоним, который ссылается на [dbPeople]. [dbo]. [Сотрудники] с именем syn_Employees, что также приводит к сбою dacpac во время создания.

CREATE FUNCTION [dbParks].[dbo].[fn_GetEmployeeList] ( )
 RETURNS TABLE
 AS 
 RETURN (
         SELECT 
              a.EmployeeCode,
              a.MunicipleCode,
              a.FullName,
              a.Supervisor
          FROM  
              [dbo].[syn_Employees] a
         )
 GO

Что действительно сбивает с толку, так это то, что в той же базе данных есть другие функции, которые используют синонимы и ссылки на имена из трех частей, которые не приводят к сбою dacpac.Кроме того, когда я удаляю [fn_GetEmployeeList], dacpac создается успешно.

Любая помощь действительно ценится

...