SQL Server - SQL Compare - ¿Identificación automática y reemplazo de diferentes nombres de bases de datos?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Tengo dos bases de datos de desarrollo localmente

  1. Alpha
  2. Beta_Dev

Tengo dos bases de datos de producción de forma remota

  1. Alpha
  2. Beta

yo suelo SQL Compare para sincronizar el esquema de las dos bases de datos alfa.

A veces, los procedimientos almacenados en la versión de desarrollo de la base de datos Alpha Tablas de referencia en la base de datos Beta, o en el entorno local, Beta_Dev.

Por ejemplo:

Select * from Beta_Dev.dbo.MyTable

Este código no funcionará en el servidor de producción, porque se llama a la base de datos beta Beta, más bien que Beta_Dev.

¿Hay alguna manera, usando SQL Compare, para que se comparen todos los SP o vistas de tal manera que Beta_Dev (local) = Beta (remote)?

Las bases de datos no solo se cargarán en funcionamiento, sino que SQL Compare no se engañará para que los SP sean diferentes, cuando solo Beta_Dev / Beta son diferentes.

¿Fue útil?

Solución

No creo que puedas hacerlo de la manera que quieras, pero aquí hay una solución potencial si es adecuada para lo que quieres hacer

Crear Synonyms Para los objetos que son referencia en el Beta bases de datos

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

y

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

para que sus procesos ahora puedan usar:

SELECT * FROM BetaMyTable

En SQL Compare, hay una opción de regla de ignoración en Edit Project... -> Options llamó Database and server name in synonyms. Creo que se verifica de forma predeterminada, pero está ahí si quieres cambiarlo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top