Gibt es eine einfache Möglichkeit, Synonyme für alle Tabellen in einer anderen Datenbank zu erstellen?
Danke
BEARBEITEN: Ich habe eine Anzahl von gespeicherten Prozeduren, die einige Tabellenschemas in die Select-Abfragen fest codierten. Wenn ich die Schemas auf einen neuen Server kopiere, scheitern die SPs, weil das Schema nicht existiert. Es gibt wenig Kontrolle über den Zielserver und ich möchte nicht alle SP ändern müssen, daher dachte ich, dass Synonym eine gute Lösung sein könnte.
Sie können eine solche Abfrage in der Originaldatenbank ausführen und dann die Ausgabeergebnisse für Ihre neue Datenbank ausführen.
%Vor%Wenn Sie dies beispielsweise für die Master-Datenbank ausführen, wird Folgendes erzeugt:
%Vor%Erstellen Sie eine gespeicherte Prozedur in etwa so:
%Vor%Dann führe es so:
%Vor%Beachten Sie, dass Sie dies als Benutzer mit der Berechtigung zum Erstellen von Synonymen ausführen müssen. Wenn Sie möchten, dass ein Benutzer ohne diese Berechtigungen sie ausführen kann, haben Sie in SQL 2000 kein Glück, in SQL 2005 können Sie eine EXECUTE AS-Klausel einfügen.
Wenn es sich um eine einzelne Instanz handelt und beide Datenbanken darauf enthalten sind - verwenden Sie die drei folgende Notation:
%Vor%Wenn die andere Datenbank in einer separaten SQL Server-Instanz vorhanden ist (Sie können mehr als einen SQL Server in einer Box haben) oder die Datenbank auf einer SQL Server-Instanz in einer anderen Box / VM vorhanden ist, erstellen Sie eine Linked Server Instanz. Dann verwenden Sie vier Namenschreibweise:
%Vor%Tags und Links sql-server synonym