【发布时间】:2013-12-20 14:47:40
【问题描述】:
我有一个在多个环境中运行的查询脚本工具,其中有许多对运行脚本的数据库的脚本内引用。我不想在运行时手动编辑每个实例,而是想在脚本顶部设置一个变量,以便可以一次性分配数据库值。
我会这样声明变量:
DECLARE @db VARCHAR(25) = 'some database name'
然后我想在对表路径的引用中使用该变量,例如:
SELECT 1 FROM @db.sys.partitions
这样的事情可能吗?如果是这样,它是如何建造的?谢谢。
【问题讨论】:
-
可以这样执行动态sql:
exec('SELECT 1 FROM ' + @db + '.sys.partitions') -
各位,感谢您的回复,但我在尝试使用 EXEC 和 SQLCMD 时遇到了麻烦,因为我的脚本中的一些引用嵌入在其他函数中。我最终做了: DECLARE @db VARCHAR(25) = 'some database name' EXEC('USE ' + @db) 然后只是缩短表路径。
标签: sql sql-server-2008