如何使用SQL连接到另一台服务器上的数据库?

时间:2014-06-18 13:42:01

标签: sql sql-server

我正在尝试编写一个SQL脚本,该脚本将提取有关某些数据存储位置的信息(即它所在的服务器和数据库)。我有一个部分,它提取信息并将其放入同一服务器上的单独数据库中,但我想要收集的大部分数据都在其他服务器上。在同一个脚本中是否有一种方法可以连接到几个不同服务器上的几个不同的DB来获取我想要的数据。基本上我正在尝试为我们各种数据库中的人们获取姓名,电子邮件和电话号码。以下是我到目前为止的情况:

if OBJECT_ID('tempdb..#TrainingSessionInfo') is not null
    drop table #TrainingSessionInfo

if OBJECT_ID('PSBackup.dbo.InvestigoUniversitySessions','U') is not null
    drop table PSBackup.dbo.InvestigoUniversitySessions

declare @StartDate date = null
        ,@EndDate date = null

set @StartDate = '1/1/2014'
set @EndDate = '6/17/2014'
--exec spGetTrainingSessionInfo @StartDate,@EndDate

create table #TrainingSessionInfo(cntID int,datDate datetime,strDesc varchar(255),strFirmID varchar(255),strTrainer varchar(255)
        ,meetingID varchar(255),Attendees int)
insert into #TrainingSessionInfo
exec spGetTrainingSessionInfo @StartDate,@EndDate

create table PSBackup.dbo.InvestigoUniversitySessions (lngSessionID int
        ,strUserID int
        ,strFirmID varchar(255)
        ,cntIF int
        ,strDSNServer varchar(255))
insert into PSBackup.dbo.InvestigoUniversitySessions (lngSessionID,strUserID,strFirmID,cntIF,strDSNServer)
select lngSessionID
        ,strUserID
        ,strFirmID
        ,cntID
        ,s.strDSNServer
from tblTrainingSessionSignUp tss
join Sites s on s.FirmID = tss.strFirmID
where tss.lngSessionID in(select cntID from #TrainingSessionInfo)

select * from PSBackup.dbo.InvestigoUniversitySessions order by lngSessionID desc,strFirmID,strUserID desc

1 个答案:

答案 0 :(得分:1)

您可以使用linked server object 您正在处理的单个中央sql server计算机上的链接服务器对象必须提前配置,但一旦正确设置,您可以使用通常的语法访问远程数据:

select top 10 * from [linked server name].[remote database name].[schema].[table]

远程服务器无需更改。