02/10/2018, 00:35

[SQL SERVER] Hướng dẫn tránh trùng lắp dữ liệu trong lệnh Insert Into Select query

Bài viết hôm nay, mình sẽ hướng dẫn các bạn cách tránh trùng lắp dữ liệu khi thêm dữ liệu vào bảng table trong sqlserver sử dụng lệnh INSERT INTO ... SELECT. Ở đây mình sẽ hướng dẫn các bạn 3 cách để tránh chèn dữ liệu trùng lắp: - Mình sẽ sử ...

Bài viết hôm nay, mình sẽ hướng dẫn các bạn cách tránh trùng lắp dữ liệu khi thêm dữ liệu vào bảng table trong sqlserver sử dụng lệnh INSERT INTO ... SELECT.

Ở đây mình sẽ hướng dẫn các bạn 3 cách để tránh chèn dữ liệu trùng lắp: 

- Mình sẽ sử dụng các hàm NOT IN, NOT EXISTS và LEFT JOIN/ ISNULL

Cách 1: Sử dụng NOT EXISTS

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE NOT EXISTS(SELECT id
                    FROM TABLE_2 t2
                   WHERE t2.id = t1.id)

Cách 2: Sử dụng NOT IN

INSERT INTO TABLE_2
  (id, name)
SELECT t1.id,
       t1.name
  FROM TABLE_1 t1
 WHERE t1.id NOT IN (SELECT id
                       FROM TABLE_2)

Cách 3: Sử dụng LEFT JOIN/IS NULL

INSERT INTO TABLE_2
  (id, name)
   SELECT t1.id,
          t1.name
     FROM TABLE_1 t1
LEFT JOIN TABLE_2 t2 ON t2.id = t1.id
    WHERE t2.id IS NULL

Have Fun :)

Tags:
0