【问题标题】:SQL - select from variableSQL - 从变量中选择
【发布时间】:2016-07-19 16:08:51
【问题描述】:

我正在尝试寻找一种替代方法来将变量的内容设置为一个大查询,我在其中动态替换值。 有可能做这样的事情吗?

declare @serv nvarchar(max)
set @serv = '[linkedServName].[dataBaseName]'
select top 10 * from @serv.dbo.someTable

如果是,请告诉我正确的语法吗?

感谢您的宝贵时间

【问题讨论】:

  • 这种方式不能用,需要用动态SQL :)
  • 你需要exec('your query')
  • 我明白了,谢谢大家

标签: sql sql-server sql-server-2012 dynamic-sql


【解决方案1】:

如果你想参数化你选择的服务器和数据库,那么你必须使用动态 sql。试试这个:

declare @serv nvarchar(max)
declare @qry nvarchar(max)

set @serv = '[linkedServName].[dataBaseName]'
set @qry = 'select top 10 * from ' + @serv + '.dbo.someTable'

exec(@qry)

【讨论】:

  • 我使用它的方式与此类似。那么这将是唯一的出路吗?我试图避免这种情况:我有一个额外的变量。谢谢你的回答,这是一个非常好的和清晰的例子
  • @CM2K 我要参数化名称,那么动态sql恐怕是唯一的方法了。
猜你喜欢
  • 2014-02-11
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多