使用变量来查询sys.servers

时间:2013-06-17 22:56:42

标签: sql sql-server

我是从SQL Server 2008 R2运行的。

在编写查询以从sys.servers查询时是否可以使用变量名?

DECLARE @hostname varchar(20)
SET @hostname = '192.168.110.101'
SELECT TOP(10) * FROM [@hostname].databasename.dbo.tablename

返回“无法在sys.servers中找到服务器'@hostname'。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers。”。

看来它正在尝试使用@hostname,而不是实际设置的变量。我也尝试删除括号,这也不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

DECLARE @SQL as varchar(max)
SET @SQL = 'SELECT TOP 10 * FROM '
DECLARE @hostname varchar(20)
SET @hostname = '192.168.110.101'
SET @SQL = SQL + @hostname + '.databasename.dbo.tablename'

EXEC (@SQL)