Join'i iki farklı veritabanı tablosu için kullanabilir miyiz?


103

Birleştirme işlemini farklı veritabanlarından iki tablo için kullanabilir miyiz? Cevabınız evet ise, nasıl yaparım?

Her iki veritabanı da aynı sunucuda ve DBMS aynı.

Yanıtlar:


193

SQL Server, bu veritabanları aynı sunucuda olduğu sürece farklı veritabanlarından tabloları birleştirmenize izin verir. Join sözdizimi aynıdır; tek fark, tablo adlarını tam olarak belirtmeniz gerektiğidir.

Diyelim ki aynı sunucuda iki veritabanınız var - Db1ve Db2. Db1adlı bir tablosu olan Clientsbir sütun ile ClientIdve Db2adında bir tablosu olan Messagesbir sütun ile ClientId(bu tabloları farklı veritabanlarında neden diyelim izni asside).

Şimdi, yukarıda belirtilen tablolarda bir birleştirme yapmak için şu sorguyu kullanacaksınız:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId

20
Her iki veritabanının da aynı güvenlik bağlamında erişilebilir olması gerektiği unutulmamalıdır. Başka bir deyişle, iki veritabanı için farklı kimlik bilgileriyle oturum açarsanız, yukarıdakiler çalışmayacaktır. Bu durumda muhtemelen "Bağlantılı Sunucular" kullanmanız gerekecektir.
Ian Goldby

2

Veritabanında Eş Anlamlılar bölümünü kullanabilirsiniz.

görüntü açıklamasını buraya girin

Ardından, Eşanlamlılar sekmesinden görünüm sihirbazında kaydedilmiş eş anlamlılarınızı bulun ve iç birleşimi kolayca görüntülemek ve ayarlamak için ekleyin. görüntü açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.