抽象外部数据库参考

时间:2009-11-19 00:11:03

标签: sql-server

我想从数据库1查询数据库2.简单,对吧?

SELECT * FROM database2.dbo.TableName

不确定。但是如果database2的实际名称发生了变化呢?我必须回去改变我的所有触发器。想象一下,如果登台服务器上的database2实例名为“database2_staging”......

我想要的是一个我可以指出的抽象,然后只需要改变抽象。类似的东西:

SELECT * FROM GetSecondaryDatabaseReference()。TableName

我查看了链接服务器,但此解决方案将是服务器内部。也许我可以将同一台服务器链接到自己?我不知道。

思想?

TIA。

2 个答案:

答案 0 :(得分:3)

您可以使用CREATE SYNONYM为每个远程表创建同义词,并在所有查询中引用它们。

答案 1 :(得分:1)

使用视图。

CREATE VIEW remotetable 如 SELECT ... FROM db2.dbo.table

视图可以指向同一数据库中的表,同一实例中不同数据库中的表,或指向使用链接服务器的其他任何地方的表。