неразрешенная ссылка на объект [информационная схема].[ТАБЛИЦЫ]


Я создал UDF, который обращается к [INFORMATION_SCHEMA].[TABLES] view:

CREATE FUNCTION [dbo].[CountTables]
(
    @name sysname
)
RETURNS INT
AS
BEGIN
    RETURN
    (
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
    );
END

в Visual Studio схема и имя представления помечены предупреждением:

SQL71502: функция: [dbo].[CountTables] имеет неразрешенную ссылку на объект [INFORMATION_SCHEMA].[ТАБЛИЦЫ.]

Я все еще могу опубликовать проект базы данных без каких-либо проблем, и UDF, похоже, работает правильно. IntelliSense заполняет имя представления для меня, так что, похоже, у него нет проблем с этим.

Я также попытался изменить, чтобы использовать sys.objects вместо этого представления, но мне было дано такое же предупреждение и для этого представления.

как я могу решить это предупреждение?

3 75

3 ответа:

добавить ссылку на базу данных в master:

  1. в рамках проекта, щелкните правой кнопкой мыши ссылки.
  2. выберите добавить ссылку на базу данных....
  3. выберите базы данных системы.
  4. обеспечить мастер выбран.
  5. пресс ОК.

обратите внимание, что для обновления VS может потребоваться некоторое время.

то, что сказал Сэм, это лучший способ сделать это.
Однако если у вас есть сценарий, который необходимо развернуть dacpac с компьютера, который не имеет этой ссылки в этом конкретном месте, вы можете попасть в беду. Другой способ-открыть свой .файл проекта и убедитесь, что следующий тег имеет значение false для конфигурации сборки, которую вы пытаетесь запустить.

<TreatTSqlWarningsAsErrors>false</TreatTSqlWarningsAsErrors>

таким образом, вам не нужно добавлять ссылку на ваш проект.

в нашем проекте у нас уже есть ссылка на master, но у нас была эта проблема. Вот ошибка, которую мы получили:

SQL71502: Procedure: [Schema].[StoredProc1] has an unresolved reference to object [Schema].[Table1].[Property1].

чтобы устранить ошибку ссылки, в файле sql таблицы, щелкните правой кнопкой мыши Свойства и убедитесь, что BuildSettings настроены на сборку.

изменение его сборки исправлено.