数据库名称为变量

时间:2013-11-06 19:42:29

标签: sql-server

我有一个包含存储过程的数据库,用于从另一个数据库中选择数据

select * from Users in AnotherDatabase.dbo.Users

我有其他数据库的几个版本,即

AnotherDatabaseProduction, AnotherDatabaseDevelopment, AnotherDatabaseStage

我记得有一段时间我创建了某种全局变量,如AnotherDatabase_Pointer,我可以通过运行像SetAnotherDatabaseToStage这样的存储过程来设置:

AnotherDatabase_Pointer = 'AnotherDatabaseStage' //pseudo-code

然后我可以在我的存储过程中使用它。

但我似乎无法记住它是如何完成的。我所能找到的是如何使用字符串替换/连接:variable database name :(

这可能吗? MS SQL。

1 个答案:

答案 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;