2016-11-22 1 views
3

Ich fragte mich, was der beste Weg war, mehrere Datenbanken in einer gespeicherten Prozedur abzufragen. Ich kann die Datenbanknamen hart codieren in der gespeicherten Prozedur heißt:Was ist der beste Weg, mehrere Datenbanken in einer gespeicherten Prozeduren in verschiedenen Umgebungen abzufragen

Select * 
from [Audit].[dbo].[AuditTable] inner join 
    [Core].[dbo].[CoreTable] 
    on .... 

Aber ich würde die gespeicherten Prozeduren in einem Versionskontrollsystem speichern möchten und wandern sie dann in verschiedenen Umgebungen. Also habe ich mich gefragt, wie ich das am besten machen könnte. Der Name der Datenbank ist für verschiedene Umgebungen unterschiedlich.

Mögliche Lösungen:

  • Mit einem View-Tabellen in unterschiedlichen Datenbanken zu überbrücken? Der Datenbankname ist nur an einer Stelle vorhanden.
  • Erweiterte Eigenschaften für die Datenbank/Übergeben des Namens in eine gespeicherte Prozedur. Es ist möglich, den Namen der in einer gespeicherten Prozedur verwendeten -Datenbank dynamisch zu ändern: Changing database name in a stored procedure dynamically Aber ich mache mir Sorgen, dass das unordentlich wird
  • Separate Umgebungen mit dem gleichen Datenbanknamen in allen Umgebungen ?

Es scheint, dass dies ein Duplikat ist: Cross-database queries with different DB names in different environments

+0

Was hat Ihre Forschung bisher ergeben? Können Sie Links bereitstellen, um zu zeigen, was Sie recherchiert haben, und angeben, wie Ihnen das nicht hilft, Ihre Antwort zu finden? –

Antwort

0

Separate Umgebungen mit den gleichen Datenbanknamen in allen Umgebungen wie die sauberste Option zu sein scheinen.

Aber wenn das keine Option ist, könnten Substitutionsvariablen vielleicht funktionieren. SQL Server-Datentools für Visual Studio behandelt es auf diese Weise - eine referenzierte Datenbank wird unter Verwendung eines Tokens z. [Audit] wird durch [$ (Audit)] ersetzt. Wenn Sie dann die Datenbank veröffentlichen, definieren Sie einen Wert für jede $ Variable und diese Werte werden anstelle der Token ersetzt.

Offensichtlich würde dies erfordern Sie einen Mechanismus, um diese Ersetzungen zu machen.

Verwandte Themen