Я создал UDF, который обращается к [INFORMATION_SCHEMA].[TABLES]
представлению:
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]. [TABLES].
Я все еще могу опубликовать проект базы данных без каких-либо проблем, и UDF, похоже, работает правильно. IntelliSense заполняет имя представления для меня, поэтому, похоже, с ним нет проблем.
Я также попытался изменить реализацию, чтобы использовать sys.objects
вместо этого представления, но я получил такое же предупреждение и для этого представления.
Как я могу устранить это предупреждение?
В нашем проекте у нас уже есть ссылка на master, но у нас была эта проблема. Мы получили ошибку:
Чтобы устранить эталонную ошибку, в файле sql таблицы щелкните правой кнопкой мыши свойства и убедитесь, что для параметра BuildSettings установлено значение Build.
Исправлено изменение сборки.
источник
то, что сказал Сэм, - лучший способ сделать это.
Однако если у вас есть сценарий, в котором вам нужно развернуть dacpac с машины, у которой нет такой ссылки в этом конкретном месте, у вас могут возникнуть проблемы. Другой способ - открыть файл .project и убедиться, что следующий тег имеет значение
false
для конфигурации сборки, которую вы пытаетесь запустить.Таким образом, вам не нужно добавлять ссылку на свой проект.
источник