繁体   English   中英

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

[英]How to connect to a DB on another server using SQL?

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

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

您可以使用链接服务器对象
必须预先配置您正在使用的单个中央sql服务器计算机上的链接服务器对象,但是一旦正确设置它们,就可以使用常规语法访问远程数据:

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

无需在远程服务器上进行任何更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM