Eu criei uma UDF que acessa a [INFORMATION_SCHEMA].[TABLES]
visualização:
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
No Visual Studio, o esquema e o nome da visualização são marcados com um aviso:
SQL71502: Função: [dbo]. [CountTables] tem uma referência não resolvida ao objeto [INFORMATION_SCHEMA]. [TABLES].
Ainda posso publicar o projeto de banco de dados sem problemas e o UDF parece funcionar corretamente. O IntelliSense preenche o nome do modo de exibição para mim, portanto, não parece haver problemas com ele.
Eu também tentei alterar a implementação para usar em sys.objects
vez desta visualização, mas recebi o mesmo aviso para esta visualização também.
Como posso resolver esse aviso?
No nosso projeto, já temos uma referência para master, mas tivemos esse problema. Aqui estava o erro que obtivemos:
Para resolver o erro de referência, no arquivo sql da tabela, clique com o botão direito em propriedades e verifique se o BuildSettings está definido como Build.
Alterar a compilação corrigiu isso.
fonte
o que Sam disse é a melhor maneira de fazer isso.
No entanto, se você tiver um cenário em que precisa implantar o dacpac de uma máquina que não tem essa referência naquele local específico, você pode ter problemas. Outra maneira é abrir seu arquivo .project e certificar-se de que a tag a seguir tenha o valor de
false
para a configuração de construção que você está tentando executar.Dessa forma, você não precisa adicionar uma referência ao seu projeto.
fonte