Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę sprawdzić duplikaty przed wstawieniem do tabeli podczas wstawiania przez wybór?

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 

Alternatywne użycie z wyjątkiem

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 

Alternatywne użycie Nie istnieje

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. Pobieranie błędu automatycznego tworzenia pliku bazy danych SQLExpress dla witryny korzystającej z programu AspNetSqlMembershipProvider, ale ciąg połączenia jest z programem SQL Server 2005

  2. Wstaw wiele wierszy wartości domyślnych do tabeli

  3. Jak zwrócić wiele wartości w jednej kolumnie (T-SQL)?

  4. Utwórz zadanie agenta programu SQL Server w Azure Data Studio

  5. Jak mogę uwzględnić wartości null w MIN lub MAX?