Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SSIS - Thực hiện Tra cứu trên Bảng khác để lấy Cột Liên quan

Trên thực tế, đây là một trường hợp cho Tra cứu. Có vẻ như bạn muốn thực hiện tra cứu theo tên và trả về id. Khá đơn giản. Đây là cách tôi tạo một ví dụ về điều này:

  1. Kéo Tác vụ Luồng Dữ liệu lên bề mặt thiết kế. Nhấp đúp vào nó để chuyển sang nó.
  2. Tạo Trình quản lý kết nối cho cơ sở dữ liệu của tôi
  3. Kéo vào bề mặt thiết kế:
    • một Nguồn OLE DB
    • Chuyển đổi tra cứu
    • Đích đến trong OLE DB
  4. Kết nối Nguồn với Tra cứu đến Đích. Đó là "Đầu ra đối sánh tra cứu" mà chúng tôi muốn đi đến đích. Xem hình 1.
  5. Định cấu hình nguồn. Bảng nguồn của tôi chỉ có các cột id và tên.
  6. Định cấu hình tra cứu
    • Tab Chung:Sử dụng Kết nối OLE DB
    • Tab kết nối:chỉ định cùng một kết nối, nhưng sử dụng bảng Tra cứu. Bảng tra cứu của tôi chỉ là id và tên, nhưng tên được đặt là duy nhất, vì vậy nó có ý nghĩa tốt hơn như một cột tra cứu.
    • Trên tab cột, định cấu hình tên để ánh xạ thành tên, với "id" làm đầu ra. Định cấu hình thao tác tra cứu thành "thêm cột mới" và đặt tên cho cột đó là "lookupId". Xem hình 2.
    • Bỏ qua hai tab khác
  7. Định cấu hình đầu ra để lấy cả ba cột. Xem hình 3.

Đó là tất cả. Đối với mỗi hàng từ nguồn, cột tên sẽ được sử dụng để khớp với cột tên của bảng tra cứu. Mỗi trận đấu sẽ đóng góp cột id của nó dưới dạng cột lookupId mới. Tất cả ba cột sẽ chuyển đến đích.

Hình 1:
67.Pimage>"

Hình 2:
Hình 3:


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các cột char và nchar của SQL Server tìm kiếm khác nhau

  2. Làm cách nào để CHÈN dữ liệu vào hai bảng đồng thời trong SQL Server?

  3. Chuyển đổi không thành công khi chuyển đổi giá trị varchar 'giá trị trả về của tôi' thành kiểu dữ liệu int

  4. Thay thế ISNUMERIC () hiệu quả trên SQL Server?

  5. SQL Server:Rò rỉ mức cách ly trên các kết nối được gộp chung