Moze i join razlicitih tabela sa razlicitih servera.
Pre izvrsavanja upita se mora postaviti linked server.
Sledeci kod radi pod pretpostavkom da je ime drugog servera 'server2000' i da oba servera imaju login 'sa' a na serveru 'server2000' je za login 'sa' sifra 'sa'
Code:
-- ovim brisem stari login ako postoji
if exists(select 1 from master.dbo.sysservers where srvname = 'srv')
exec sp_droplinkedsrvlogin @rmtsrvname = 'srv', @locallogin = 'sa'
go
-- ovim brisem linkovan server ako postoji
if exists(select 1 from master.dbo.sysservers where srvname = 'srv')
exec sp_dropserver 'srv'
go
-- dodajem novi linkovan server
exec sp_addlinkedserver @server='srv', @srvproduct = '', @provider = 'SQLOLEDB', @datasrc = 'server2000'
go
-- dodajem login za linked server
sp_addlinkedsrvlogin @rmtsrvname = 'srv', @locallogin = 'sa', @rmtuser = 'sa', @rmtpassword = 'sa'
go
I onda mozes izvrsiti upit (dodas ime servera ispred imena baze):
Code:
select * from [baza1].[dbo].[tabel1] T1
left join [srv].[baza2].[dbo].[tabel2] T2 on T1.ID = T2.ID
U zavisnosti od brzine veze ce ti zavisiti i brzina izvrsavanja upita.