动态数据库名称和架构/所有者分配

时间:2010-08-20 18:19:09

标签: tsql sql-server-2000

我需要连续多次从另一个表中更新表。为了使这个脚本更易于人们使用,我希望能够动态地引用它。像这样:

declare @databasename sysname
set @databasename = 'm2mdata01.dbo'

select * from @databasename.mytable

这不起作用。有关如何实现这一目标的任何建议吗?

1 个答案:

答案 0 :(得分:1)

您不能在SQL语句中的FROM子句中使用变量。您必须使用动态SQL,例如:

declare @databasename sysname
set @databasename = 'm2mdata01.dbo'
EXEC ('select * from ' + @databasename + '.mytable')