Wpis z mikrobloga

Jaka zrobić INSERT do tabeli MSSQL, który będzie ignorował duplikaty i nie przerywał działania?
Wiem, że można dać na końcu WHERE ale to niepotrzebne ponowny SELECT.
Może istnieje jakiś inny sposób? Coś jak w MySQLu mamy INSERT IGNORE TO

#programowanie #sql #mssql #mssql #tsql
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ostrykuc666: dzięki tak własnie mam zrobione, ale wydajność wtedy spada od tego rozwiązania.
Myslałem jeszcze o cursorze w try catch i gdy wywali błąd z duplikatami to sobie go zignoruje ale nie chcec mi się tyle pisać produkować pod każda kolumnę kolejnej zmiennej
  • Odpowiedz
@n1troo: insert into ... select distinct ... Niestety sam distinct jest zasobożerny. Najlepiej jak @ostrykuc666 napisał. Zastosowanie funkcji merge.

EDIT: Jak prościej to możesz napisać insert into z left joinem do tabeli do której wrzucasz i tam dodać where pole po którym joinujesz is null. Będzie wydajniej niż distinct.
  • Odpowiedz