【问题标题】:Using a Variable to Construct a Table Path [duplicate]使用变量构造表路径
【发布时间】: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


【解决方案1】:

以下动态 SQL 应该适合您:

declare @sql_command nvarchar(max)
declare @db varchar(25)
select @db = 'some database name'

select @sql_command = 'SELECT top 1 * FROM '+ @db + '.sys.partitions'
execute sp_executesql @sql_command

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2014-02-06
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2012-09-20
    相关资源
    最近更新 更多