2011-06-14 62 views
1

我有兩個開發數據庫本地SQL Server - SQL比較 - 自動識別和替換不同的數據庫名稱?

  1. Alpha
  2. Beta_Dev

我有兩個生產數據庫遠程

  1. Alpha
  2. Beta

我用SQL Compare同步兩個阿爾法數據庫的架構。

有時候,數據庫Alpha數據庫開發版本中的存儲過程數據庫Beta或本地環境Beta_Dev中的參考表。

例如:

Select * from Beta_Dev.dbo.MyTable 

此代碼不會在生產服務器上運行,因爲測試版的數據庫被稱爲Beta,而不是Beta_Dev

有沒有一種方法,使用SQL Compare來比較所有SP或Views,使Beta_Dev (local) = Beta (remote)

不僅數據庫會按照工作順序上傳,而且SQL比較不會被欺騙,因爲只有Beta_Dev/Beta版本不同時,SP纔會有所不同。

回答

1

我不認爲你可以做到這一點,你所希望的方式,但這裏是一個潛在的解決方法,如果你想要做

創建Synonyms對於那些在Beta數據庫

參考的對象是什麼很適合
USE [Alpha] 
CREATE SYNONYM [dbo].[BetaMyTable] FOR [Beta].[dbo].[MyTable] 

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

讓你的特效現在可以使用:

SELECT * FROM BetaMyTable 

in SQL比較,在Edit Project... -> Options中有一個忽略規則選項Database and server name in synonyms。我相信這是默認檢查,但如果你想改變它,它就在那裏