SQL Server:避免跨数据库视图中的数据库名称的硬编码

cod*_*ike 2 sql-server hard-coding cross-database

因此,假设您在同一服务器上有两个SQL Server数据库,它们在视图,函数和存储过程中引用彼此的表.

你知道,这样的事情:

use database_foo

create view spaghetti
as
select f.col1, c.col2
from fusilli f
inner join database_bar.dbo.conchigli c on f.id = c.id
Run Code Online (Sandbox Code Playgroud)

(我知道跨数据库视图不是很好的做法,但只是说你坚持使用它)

是否有任何好的技术可以避免对数据库名称进行"硬编码"?

(那么你是否需要偶尔重新指向另一个数据库 - 也许是为了测试 - 你不需要编辑视图,fns,sps的负载)

我对SQL 2005或SQL 2008解决方案感兴趣.干杯.

Ran*_*der 8

您可以尝试使用同义词.这样,您可以更改同义词指向的内容,而无需更改代码.