SQL Comparer - - SQL Server Identification automatique et le remplacement des différents noms de base de données?

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

  •  27-10-2019
  •  | 
  •  

Question

J'ai deux bases de données de développement local

  1. Alpha
  2. Beta_Dev

J'ai deux bases de données de production à distance

  1. Alpha
  2. Beta

J'utilise SQL Comparer pour synchroniser le schéma des deux bases de données Alpha.

Parfois, les procédures stockées dans la version de développement de la base de données des tables de référence Alpha dans la base de données Beta, ou dans l'environnement local, Beta_Dev.

Par exemple:

Select * from Beta_Dev.dbo.MyTable

Ce code ne fonctionne pas sur le serveur de production, parce que la base de données de Beta est appelé Beta, plutôt que Beta_Dev.

Est-il possible, en utilisant SQL Comparer, d'avoir du tout SP ou sur être comparé telle que Beta_Dev (local) = Beta (remote)?

Non seulement les bases de données être téléchargées en ordre de marche, mais SQL Comparer ne sera pas trompé en pensant que les années SP sont différentes, quand seulement Beta_Dev / Beta sont différents.

Était-ce utile?

La solution

Je ne pense pas que vous pouvez le faire de la façon dont vous voulez, mais voici une solution de contournement potentiel si elle convient à ce que vous voulez faire

Créer Synonyms pour les objets qui sont la référence dans les bases de données Beta

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

et

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

afin que vos procs peuvent maintenant utiliser:

SELECT * FROM BetaMyTable

dans SQL Comparer, il y a une option Ignore de règle dans Edit Project... -> Options appelée Database and server name in synonyms. Je crois qu'il est cochée par défaut, mais il est là si vous voulez changer

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top