Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво е най-добре да проверите дали елементът съществува или не:Изберете Count(ID)OR Exist(...)?

СЪЩЕСТВУВА, винаги

  • COUNT ще премине през таблицата или индекс:поискахте COUNT
  • EXISTS ще спре веднага щом намери ред

Редактирайте, за да е ясно

Разбира се, в този случай, ако имейл колоната е уникална и индексирана, тя ще бъде затворена.

Като цяло EXISTS ще използва по-малко ресурси и също е по-правилен. Търсите съществуването на ред, а не "повече от нула", дори ако те са еднакви

Edit2:В EXISTS можете да използвате NULL, 1, ID или дори 1/0:не е отметнато...

21 май 2011 г. редакция:

Изглежда, че това е оптимизирано в SQL Server 2005+, така че COUNT вече е същото като EXISTS в този случай



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разрешаването на претоварване е неуспешно, тъй като не може да се извика достъпно „ново“ без стесняващо преобразуване

  2. Как да се свържете с база данни на SQL сървър от приложение за Windows 10 UWP

  3. Начини за възстановяване на данни от регистрационния файл на транзакциите на SQL Server

  4. sql сървър използва изчислена колона

  5. varchar(max) тип данни odbc съпоставяне към ms-access2003