SQL Server - SQL -Vergleich - Automatische Identifizierung und Austausch verschiedener Datenbanknamen?

StackOverflow https://stackoverflow.com/questions/6337900

  •  27-10-2019
  •  | 
  •  

Frage

Ich habe zwei Entwicklungsdatenbanken vor Ort

  1. Alpha
  2. Beta_Dev

Ich habe zwei Produktionsdatenbanken aus der Ferne

  1. Alpha
  2. Beta

ich benutze SQL Compare Um das Schema der beiden Alpha -Datenbanken zu synchronisieren.

Manchmal gespeicherte Verfahren in der Entwicklungsversion der Datenbank Alpha Referenztabellen in der Datenbank Beta, oder in der lokalen Umgebung, Beta_Dev.

Zum Beispiel:

Select * from Beta_Dev.dbo.MyTable

Dieser Code funktioniert nicht auf dem Produktionsserver, da die Beta -Datenbank aufgerufen wird Beta, statt Beta_Dev.

Gibt es eine Möglichkeit, SQL -Vergleichen zu verwenden, damit alle SPs oder Ansichten so verglichen werden, dass Beta_Dev (local) = Beta (remote)?

Die Datenbanken würden nicht nur in funktionierender Reihenfolge hochgeladen, sondern SQL Compare wird nicht dazu gebracht, zu glauben, dass die SPs unterschiedlich sind, wenn nur Beta_dev / Beta unterschiedlich sind.

War es hilfreich?

Lösung

Ich glaube nicht

Schaffen Synonyms Für die Objekte, die in der Referenz sind Beta Datenbanken

USE [Alpha]
CREATE SYNONYM [dbo].[BetaMyTable] FOR [Beta].[dbo].[MyTable]

und

USE [Alpha_dev]
CREATE SYNONYM [dbo].[BetaMyTable] FOR [Beta_dev].[dbo].[MyTable]

So können Ihre Procs jetzt verwenden:

SELECT * FROM BetaMyTable

In SQL Compare gibt es eine Ignorierregeloption in Edit Project... -> Options genannt Database and server name in synonyms. Ich glaube, es wird standardmäßig überprüft, aber es ist da, wenn Sie es ändern möchten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top