У нас есть одна табличная функция, которая вызывает сбой 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 создается успешно.
Любая помощь действительно ценится