Ich habe ein SQL Server-Datenbankprojekt in Visual Studio 2013 erstellt und einen DACPAC aus einer Produktionsdatenbank importiert. Als ich versuchte, das Projekt zu erstellen, erhalte ich Hunderte von Fehlern SQL71501 und SQL71561 (beide sind "unaufgelöster Verweis auf ein Objekt"). Bei der Untersuchung der Skripts besteht das Problem darin, dass viele Ansichten und gespeicherte Prozeduren drei Teilenamen verwenden: [Datenbank]. [Schema]. [Objekt].Nicht aufgelöste Verweise auf dieselbe Datenbank Projekt
Es scheint, dass Visual Studio 2013 diesen Fehler immer dann ausgibt, wenn es auf einen dreiteiligen Namen trifft, der die vom Datenbankprojekt dargestellte Datenbank enthält. Beispiel: Wenn das Datenbankprojekt die Datenbank "MyDatabase" darstellt und ein SQL-Skript in diesem Projekt etwas wie SELECT t.Column1 FROM MyDatabase.dbo.MyTable t
enthält, löst VS 2013 entweder SQL71501 oder SQL71561 aus, wenn ich das Projekt erstelle.
Gibt es eine Möglichkeit, unaufgelöste Referenzfehler zu unterdrücken, die nur für die aktuelle Datenbank gelten? Ich möchte weiterhin, dass Visual Studio Fehler für nicht aufgelöste Verweise auf externe Datenbanken auslöst.
EDIT, Korrektur: Ursprünglich wurde der Fehlercode SQL71501 angegeben. Es scheint jedoch, dass Visual Studio sowohl SQL71501- als auch SQL71561-Fehler für nicht aufgelöste Verweise auf dieselbe Datenbank auslöst.
Ich frage mich auch darüber. Ich habe etwas gefunden, das zu funktionieren scheint, aber dann habe ich alle möglichen Buildfehler bekommen. Der einzige Erfolg, den ich hatte, ist das Entfernen der 3-teiligen Benennung von allen Prozeduren, Ansichten und Funktionen für dieselbe Datenbank. Es ist relativ einfach zu finden, wenn Sie auf Dateien vom Typ * .sql beschränken und den Schemanamen einschließen, aber es scheint, dass es einen besseren Weg geben sollte. –
@PeterSchott: Ich habe eine vorherige Stackoverflow-Post gefunden, die das Entfernen von 3 Teilenamen zu bestätigen scheint, ist die einzige Lösung: http://stackoverflow.com/questions/19153996/ssdt-unresolved-reference-error-sql71561. Die Frage enthält einen Link zu einem alten MSDN-Blog, der zu bestätigen scheint, dass wir keine 3-teiligen Namen in SSDT-Datenbankprojekten verwenden können. Die einzige Möglichkeit besteht darin, den Datenbanknamen an einer beliebigen Stelle zu entfernen. (Ich bemerke auch, dass die Links im Antwortpunkt auf das verweisen, was ich als Ihren Blog betrachte!) Dieser MSDN-Blogpost ist 5 Jahre alt und ich bin enttäuscht, dass er dieses Problem in nachfolgenden Versionen nicht behoben hat. –
Nun, wie ich schon sagte, ich hatte _partial_ Erfolg. Es sah großartig aus, bis ich baute und fand, dass viele andere Sachen jetzt Fehler schmeißen. Ich stimme zu, dass es enttäuschend ist. –