从链接的SQL Server中选择特定列

时间:2016-06-16 15:49:09

标签: sql sql-server sql-server-2008

我有一台物理服务器运行两个SQL Server实例,一个是2008 R2(端口1433),另一个是普通2008(端口1444)。

我有一个链接服务器设置,以下查询从2008 R2开始运行正常

SELECT * 
FROM [LINKEDSERVER,1444].[DBNAME].[dbo].[TABLENAME]

当我尝试运行此查询时,我收到错误,无法绑定多部分标识符。

SELECT [LINKEDSERVER,1444].[DBNAME].[dbo].[TABLENAME].[COLUMNNAME]
FROM [LINKEDSERVER,1444].[DBNAME].[dbo].[TABLENAME]

有谁能请说明这里发生的事情?我假设我有一个简单的语法错误或者其他什么,但我能找到的所有例子都只是Select *,而这不是我需要的。

1 个答案:

答案 0 :(得分:0)

4级是您可以选择的最深级别,但如果您想在上述情况中引用特定列,则可以使用表别名。在from空间中的表名后面加一个空格,然后是一个字母或缩写的缩写。您可以在查询中引用该别名来缓解您的问题。

SELECT abrv.[COLUMNNAME]
FROM [LINKEDSERVER,1444].[DBNAME].[dbo].[TABLENAME] abrv

如果您要通过链接服务器访问它,另一种替代方法是实际为表(https://msdn.microsoft.com/en-us/library/ms187552.aspx)创建同义词并使用它,就像它是本地表一样。