Sql server 在同一台计算机上查询多个MS SQL数据库实例

Sql server 在同一台计算机上查询多个MS SQL数据库实例,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我是微软SQL的新手,我正在尝试做一些看似简单但却让我疯狂的事情 我想写一个查询,从两个数据库中提取数据。每个数据库都位于同一台DEV计算机上的不同实例上。(一个是MS SQL 2008,另一个是MS SQL 2005)。我正在使用Microsoft SQL Server Management Studio(MSSMS) 我已经弄清楚了基本原理。我知道查询的格式以及我需要做什么。我最大的问题是弄清楚每台服务器的名称是什么 SELECT LastName FROM [servername1].

我是微软SQL的新手,我正在尝试做一些看似简单但却让我疯狂的事情

我想写一个查询,从两个数据库中提取数据。每个数据库都位于同一台DEV计算机上的不同实例上。(一个是MS SQL 2008,另一个是MS SQL 2005)。我正在使用Microsoft SQL Server Management Studio(MSSMS)

我已经弄清楚了基本原理。我知道查询的格式以及我需要做什么。我最大的问题是弄清楚每台服务器的名称是什么

SELECT LastName
  FROM [servername1].CHA2.dbo.Customer
UNION  
SELECT LastName
  FROM [servername2].OBXKites.dbo.Contact
ORDER BY LastName
我使用了连接到
MSSMS(DLPT\HENRY)
的服务器名,以及
返回的服务器名。@@SERVERNAME

SELECT @@SERVERNAME returns DLPT\HENRY
我试过了

DLPT\HENRY.CHA2.dbo.Customer

不起作用

我在没有DLPT HENRY.CHA2.dbo客户的情况下尝试过

不起作用

我需要找出查询中要使用的服务器名称

[DLPT\HENRY].CHA2.dbo.Customer
namo包含反斜杠,该反斜杠在标识符中通常是非法的。非法名称用括号括起来


请注意,只围绕服务器名称。换句话说,它是[DLPT\HENRY].CHA2.dbo.Customer,而不是[DLPT\HENRY.CHA2.dbo.Customer]。

您必须配置链接服务器。然后,只有不同的SQL Server实例才能相互通信。

不幸的是,默认情况下,您无法访问不同SQL Server实例中数据库中的表。您在这里有两个选项—这两个选项都不简单,可能需要DBA的帮助:

1) 使用以下链接服务器:

然后,您将能够以INSTANCENAME.DatabaseName.SchemaName.TableName格式引用第二个表

2) 使用复制将表从第二个数据库获取到第一个数据库。然后,第二个表的内容将或多或少地实时同步到第一个数据库


您需要使用链接服务器。