Utworzyłem UDF, który ma dostęp do [INFORMATION_SCHEMA].[TABLES]
widoku:
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
W programie Visual Studio schemat i nazwa widoku są oznaczone ostrzeżeniem:
SQL71502: Funkcja: [dbo]. [Tabele zliczeń] ma nierozwiązane odwołanie do obiektu [SCHEMAT_ INFORMACJI]. [TABELE].
Nadal mogę bez problemu opublikować projekt bazy danych, a UDF wydaje się działać poprawnie. Technologia IntelliSense wypełnia dla mnie nazwę widoku, więc nie wydaje się, że ma z tym problem.
Próbowałem również zmienić implementację, aby używać sys.objects
zamiast tego widoku, ale otrzymałem to samo ostrzeżenie również dla tego widoku.
Jak mogę rozwiązać to ostrzeżenie?
W naszym projekcie mamy już odniesienie do mastera, ale mieliśmy ten problem. Oto błąd, który otrzymaliśmy:
Aby rozwiązać błąd odwołania, w pliku sql tabeli kliknij prawym przyciskiem myszy właściwości i sprawdź, czy ustawienia BuildSettings są ustawione na Build.
Zmiana kompilacji naprawiła to.
źródło
to, co powiedział Sam, jest najlepszym sposobem na zrobienie tego.
Jeśli jednak masz scenariusz, w którym musisz wdrożyć dacpac z maszyny, która nie ma tego odniesienia w tej konkretnej lokalizacji, możesz mieć kłopoty. Innym sposobem jest otwarcie pliku .project i upewnienie się, że następujący znacznik ma wartość
false
dla konfiguracji kompilacji, którą próbujesz uruchomić.W ten sposób nie musisz dodawać odwołania do swojego projektu.
źródło