2012-11-14 10 views
5

Es sieht aus wie Visual Studio Database Project nicht SQLCMD -Variablen analysieren einen Schema-Vergleich. AlleGibt es eine Option zum Analysieren von SQLCMD-Variablen, die einen Vergleich im Visual-Studio-Schemavergleich durchführen?

mein Synonyme sieht aus wie

CREATE SYNONYM [dbo].[addressesExtDB] FOR [$(ExtDB)].[dbo].[addresses]; 

aber sie halten als andere aus der Datenbank gemeldet werden.

Wenn ich ein Schema Update mit dem richtigen 'Specify SQLCMD Variabeles...' -Einstellungen, wo die var EXTDB zu 'ExtDBnn' die resultierenden Synonym in der Datenbank festgelegt ist richtig eingestellt auf:

CREATE SYNONYM [dbo].[addressesExtDB] FOR [ExtDBnn].[dbo].[addresses]; 

A recompare Aktionen zeige alle Synonyme fälschlicherweise als wieder anders. Also sollte der Vergleich die sqlcmd-Variablen analysieren und die Ergebnisse verwenden, um mit der Datenbank zu vergleichen. Vermisse ich eine Option, um dies oder etwas zu tun, oder haben Sie das gleiche Problem und irgendwie eine Lösung gefunden?

Antwort

0

Nein, Variablen werden überhaupt nicht an den Schemavergleich in VS übergeben (Sie können dies überprüfen, indem Sie z. B. Ihren eigenen Mitarbeiter zum Projekt hinzufügen).

Interessanterweise werden Variablen auch bei Verwendung von SqlPackage.exe nur an Quelle, nicht an Ziel übergeben.

Als ich damit fertig wurde, beendete ich den Datenbanknamen -> Variablensubstitution in einer .dacpac-Datei, die aus der Datenbank abgerufen wurde - alles funktioniert so, obwohl es ein ziemlich hack ist.