Sql server 在同一台计算机上查询多个MS SQL数据库实例
我是微软SQL的新手,我正在尝试做一些看似简单但却让我疯狂的事情 我想写一个查询,从两个数据库中提取数据。每个数据库都位于同一台DEV计算机上的不同实例上。(一个是MS SQL 2008,另一个是MS SQL 2005)。我正在使用Microsoft SQL Server Management Studio(MSSMS) 我已经弄清楚了基本原理。我知道查询的格式以及我需要做什么。我最大的问题是弄清楚每台服务器的名称是什么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].
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) 使用复制将表从第二个数据库获取到第一个数据库。然后,第二个表的内容将或多或少地实时同步到第一个数据库
您需要使用链接服务器。