我有一个包含存储过程的数据库,用于从另一个数据库中选择数据
select * from Users in AnotherDatabase.dbo.Users
我有其他数据库的几个版本,即
AnotherDatabaseProduction, AnotherDatabaseDevelopment, AnotherDatabaseStage
我记得有一段时间我创建了某种全局变量,如AnotherDatabase_Pointer
,我可以通过运行像SetAnotherDatabaseToStage
这样的存储过程来设置:
AnotherDatabase_Pointer = 'AnotherDatabaseStage' //pseudo-code
然后我可以在我的存储过程中使用它。
但我似乎无法记住它是如何完成的。我所能找到的是如何使用字符串替换/连接:variable database name :(
这可能吗? MS SQL。
答案 0 :(得分:5)
您可能正在考虑Synonym。
CREATE SYNONYM dbo.whatever FOR dbname.dbo.procedure_name;
现在,如果您想将其更改为其他数据库,只需删除并重新创建同义词:
DROP SYNONYM dbo.whatever;
GO
CREATE SYNONYM dbo.whatever FOR other_dbname.dbo.procedure_name;