2

我们有现场和演示系统,每个系统都使用一对数据库。一个数据库经常从另一个数据库报告。

演示站点经常有这样的参考

SELECT  Columns
FROM    OtherDatabase_demo.dbo.Tablename

所以现场版会说:

...FROM    OtherDatabase.dbo.Tablename

在发布时,我比较了 live 和 demo 之间的存储过程(在我的例子中使用 dbForge Schema Compare),每个不同的引用都被突出显示,并产生了很多噪音。

有什么方法可以抽象出这些引用,以便我可以在一个位置进行区分?

4

1 回答 1

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/311079/expand-synonym-to-other-entities-database-linked-server

http://connect.microsoft.com/SQLServer/feedback/details/288421/allow-create-synonym-for-database

于 2013-08-07T12:38:54.333 回答