Chúng ta có thể sử dụng phép nối cho hai bảng cơ sở dữ liệu khác nhau không?


98

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:


187

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ủ - Db1Db2. Db1có một bảng được gọi Clientsvới một cột ClientIdDb2một bảng được gọi là Messagesmộ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

17
Có lẽ cần lưu ý rằng cả hai cơ sở dữ liệu phải có thể truy cập được trong cùng một bối cảnh bảo mật. Nói cách khác, nếu bạn đăng nhập bằng các thông tin đăng nhập khác nhau cho hai cơ sở dữ liệu thì cách trên sẽ không hoạt động. Trong trường hợp đó, bạn có thể sẽ phải sử dụng "Máy chủ được liên kết".
Ian Goldby

2

Bạn có thể sử dụng phần Từ đồng nghĩa trong cơ sở dữ liệu.

nhập mô tả hình ảnh ở đây

Sau đó, trong trình hướng dẫn xem từ tab Từ đồng nghĩa, hãy tìm các từ đồng nghĩa đã lưu của bạn và thêm vào để xem và đặt nối bên trong một cách đơn giản. nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.