2011-06-14 47 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。我相信这是默认检查,但如果你想改变它,它就在那里