J'ai créé un UDF qui accède à la [INFORMATION_SCHEMA].[TABLES]
vue:
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
Dans Visual Studio, le schéma et le nom de la vue sont tous deux marqués d'un avertissement:
SQL71502: Fonction: [dbo]. [CountTables] a une référence non résolue à l'objet [INFORMATION_SCHEMA]. [TABLES].
Je peux toujours publier le projet de base de données sans aucun problème et l'UDF semble fonctionner correctement. IntelliSense renseigne le nom de la vue pour moi, il ne semble donc pas y avoir de problème.
J'ai également essayé de changer l'implémentation à utiliser à la sys.objects
place de cette vue, mais j'ai également reçu le même avertissement pour cette vue.
Comment puis-je résoudre cet avertissement?
Dans notre projet, nous avons déjà une référence à master, mais nous avons eu ce problème. Voici l'erreur que nous avons obtenue:
Pour résoudre l'erreur de référence, sur le fichier sql de la table, cliquez avec le bouton droit sur Propriétés et vérifiez que BuildSettings est défini sur Build.
Le changer de build l'a corrigé.
la source
ce que Sam a dit est la meilleure façon de faire cela.
Cependant, si vous avez un scénario dans lequel vous devez déployer le dacpac à partir d'une machine qui n'a pas cette référence à cet emplacement spécifique, vous pouvez avoir des problèmes. Une autre méthode consiste à ouvrir votre fichier .project et à vous assurer que la balise suivante a la valeur de
false
pour la configuration de construction que vous essayez d'exécuter.De cette façon, vous n'avez pas besoin d'ajouter une référence à votre projet.
la source