我们有实时和演示系统,每个系统都使用一对数据库。 一个数据库经常从另一个数据库报告。
演示网站经常有这样的参考
SELECT Columns
FROM OtherDatabase_demo.dbo.Tablename
所以直播版会说:
...FROM OtherDatabase.dbo.Tablename
当涉及到publsihing时,我比较了live和demo之间的存储过程(在我的例子中使用dbForge Schema Compare),每个不同的引用都会突出显示,并产生很多噪音。
有没有办法抽象这些引用,以便我可以在一个位置进行区分?
答案 0 :(得分:9)
是的,请使用同义词。在一个数据库中:
CREATE SYNONYM dbo.MyTableName FOR OtherDatabase_demo.dbo.Tablename;
在实时版本中:
CREATE SYNONYM dbo.MyTableName FOR OtherDatabase.dbo.Tablename;
现在你的脚本可以说......
SELECT Columns
FROM dbo.MyTableName
...在两个数据库中,允许您的程序相同。
您的差异脚本可能会为同义词选择不同的定义,但希望您可以忽略这些定义(使用该工具或只是有意识地)。
我们已经要求对数据库进行别名的能力,但他们不了解这可能有多大用处:
http://connect.microsoft.com/SQLServer/feedback/details/288421/allow-create-synonym-for-database