Chúng ta có thể sử dụng thao tác nối cho hai bảng từ các cơ sở dữ liệu khác nhau không? Nếu có, tôi phải làm như thế nào?
Cả hai cơ sở dữ liệu đều nằm trên cùng một máy chủ và DBMS cũng vậy.
Chúng ta có thể sử dụng thao tác nối cho hai bảng từ các cơ sở dữ liệu khác nhau không? Nếu có, tôi phải làm như thế nào?
Cả hai cơ sở dữ liệu đều nằm trên cùng một máy chủ và DBMS cũng vậy.
Câu trả lời:
SQL Server cho phép bạn tham gia các bảng từ các cơ sở dữ liệu khác nhau miễn là các cơ sở dữ liệu đó nằm trên cùng một máy chủ. Cú pháp nối giống nhau; sự khác biệt duy nhất là bạn phải chỉ định đầy đủ các tên bảng.
Giả sử bạn có hai cơ sở dữ liệu trên cùng một máy chủ - Db1
và Db2
. Db1
có một bảng được gọi Clients
với một cột ClientId
và Db2
một bảng được gọi là Messages
một cột ClientId
(hãy để lại giả định tại sao các bảng đó lại nằm trong các cơ sở dữ liệu khác nhau).
Bây giờ, để thực hiện một phép nối trên các bảng được đề cập ở trên, bạn sẽ sử dụng truy vấn này:
select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId