Ich habe eine UDF erstellt, die auf die [INFORMATION_SCHEMA].[TABLES]
Ansicht zugreift :
CREATE FUNCTION [dbo].[CountTables]
(
@name sysname
)
RETURNS INT
AS
BEGIN
RETURN
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @name
);
END
In Visual Studio sind sowohl das Schema als auch der Name für die Ansicht mit einer Warnung gekennzeichnet:
SQL71502: Funktion: [dbo]. [CountTables] hat einen ungelösten Verweis auf das Objekt [INFORMATION_SCHEMA]. [TABLES].
Ich kann das Datenbankprojekt weiterhin ohne Probleme veröffentlichen, und die UDF scheint korrekt zu laufen. IntelliSense füllt den Namen der Ansicht für mich aus, sodass es kein Problem damit zu geben scheint.
Ich habe auch versucht, die Implementierung so zu ändern, dass sie sys.objects
anstelle dieser Ansicht verwendet wird, aber ich habe die gleiche Warnung auch für diese Ansicht erhalten.
Wie kann ich diese Warnung beheben?
In unserem Projekt haben wir bereits einen Verweis auf Master, aber wir hatten dieses Problem. Hier war der Fehler, den wir bekommen haben:
Um den Referenzfehler zu beheben, klicken Sie in der SQL-Tabellendatei mit der rechten Maustaste auf Eigenschaften und überprüfen Sie, ob die BuildSettings auf Build festgelegt sind.
Das Ändern des Builds hat das Problem behoben.
quelle
Was Sam sagte, ist der beste Weg, dies zu tun.
Wenn Sie jedoch ein Szenario haben, in dem Sie den Dacpac von einem Computer aus bereitstellen müssen, auf dem diese Referenz an diesem bestimmten Speicherort nicht vorhanden ist, können Probleme auftreten. Eine andere Möglichkeit besteht darin, Ihre .project-Datei zu öffnen und sicherzustellen, dass das folgende Tag den Wert
false
für die Build-Konfiguration hat, die Sie ausführen möchten .Auf diese Weise müssen Sie Ihrem Projekt keinen Verweis hinzufügen.
quelle