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

Co najlepiej sprawdzić, czy element istnieje, czy nie:Wybierz Count(ID)OR Exist(...)?

ISTNIEJE, zawsze

  • LICZBA przejdzie przez tabelę lub indeks:prosiłeś o COUNT
  • EXISTS zatrzyma się, gdy tylko znajdzie wiersz

Edytuj, aby było jasne

Oczywiście w tym przypadku, jeśli kolumna e-mail jest unikalna i zaindeksowana, będzie zamknięta.

Ogólnie rzecz biorąc, EXISTS zużywa mniej zasobów i jest również bardziej poprawne. Szukasz wiersza, nie więcej niż zero, nawet jeśli są takie same

Edit2:W EXISTS możesz użyć NULL, 1, ID, a nawet 1/0:nie jest zaznaczone...

21 maja 2011 edytuj:

Wygląda na to, że zostało to zoptymalizowane w SQL Server 2005+, więc COUNT jest teraz takie samo jak EXISTS w tym przypadku



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pozbyć się zakleszczenia w aplikacji SQL Server 2005 i C#?

  2. Generatory danych dla serwera SQL?

  3. BULK INSERT z ciągu oddzielonego przecinkami

  4. Niestandardowa funkcja agregująca (concat) w SQL Server

  5. Obliczanie liczby pełnych miesięcy między dwiema datami w SQL