Visual Studio-Datenbankprojekt: Überprüfen Sie, ob die SQL Server-Anmeldung vorhanden ist, bevor Sie sie erstellen
Wenn ich ein Visual Studio-Datenbankprojekt für SQL 2012 erstelle und es mit einer vorhandenen Datenbank synchronisiere (mithilfe des Vergleichsschemas), synchronisiere ich auch eine SQL Server-Anmeldung. Visual Studio generiert das folgende Skript für die Anmeldung:
CREATE LOGIN [my_user] WITH PASSWORD = 'somesecurepass'
Wenn ich versuche, die generierte SQL auf einem Server zu veröffentlichen, auf dem diese Anmeldung vorhanden ist, zeigt sqlcmd einen Fehler an:
The server principal my_user already exists.
Wenn ich mir das von Visual Studio generierte SQL-Skript ansehe, sehe ich, dass viele Objekte in IF EXISTS-Anweisungen eingeschlossen sind, CREATE LOGIN jedoch nicht!
Ich habe versucht, es manuell in das SQL-Skript im Projekt einzubinden, aber dann wird das Projekt nicht erstellt, und es liegt ein Fehler vor, der auf IF verweist:
SQL70001: This statement is not recognized in this context.
Wie kann ich nun Visual Studio zwingen, das Anmeldeerstellungsskript mit der IF EXISTS-Prüfung zu generieren und dabei auch die Synchronisierungsfähigkeiten nicht zu verlieren?