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

Làm cách nào để kiểm tra các bản sao trước khi chèn vào bảng khi chèn bằng cách chọn

INSERT INTO table1 
SELECT t2.col1, 
       t2.col2 
FROM   table2 t2 
       LEFT JOIN table1 t1 
         ON t2.col1 = t1.col1 
            AND t2.col2 = t1.col2 
WHERE  t1.col1 IS NULL 

Thay thế bằng cách sử dụng ngoại trừ

INSERT INTO @table2 
SELECT col1, 
       col2 
FROM   table1 
EXCEPT 
SELECT t1.col1, 
       t1.col2 
FROM   table1 t1 
       INNER JOIN table2 t2 
         ON t1.col1 = t2.col1 
            AND t1.col2 = t2.col2 

Thay thế bằng cách sử dụng Không tồn tại

INSERT INTO table2 
SELECT col1,col2 
FROM table1 t1
WHERE
NOT EXISTS( SELECT 1
    FROM table2 t2
    WHERE t1.col1 = t2.col1
          AND t1.col2 = t2.col2)


  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ách khắc phục “Chuyển đổi không thành công khi chuyển đổi giá trị thành kiểu dữ liệu” trong SQL Server

  2. Làm thế nào để lấy bốn ký tự cuối cùng từ một varchar?

  3. ORDER BY các mục phải xuất hiện trong danh sách chọn nếu CHỌN DISTINCT được chỉ định

  4. Xử lý truy vấn hàng loạt SQL (mảng đầu vào truy vấn SQL)

  5. Kết nối với Cơ sở dữ liệu MSSQL bằng Flask-SQLAlchemy