Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é o melhor para verificar se o item existe ou não:Selecione Count(ID)OR Exist(...)?


EXISTE, sempre
  • COUNT percorrerá a tabela ou um índice:você solicitou um COUNT
  • EXISTS será interrompido assim que encontrar uma linha

Edite, para ser claro

Obviamente, neste caso, se a coluna de email for única e indexada, ela será fechada.

Geralmente, EXISTS usará menos recursos e é mais correto também. Você está procurando a existência de uma linha, não "mais que zero", mesmo que sejam iguais

Edit2:No EXISTS, você pode usar NULL, 1, ID ou até 1/0:não está marcado...

21 de maio de 2011 editar:

Parece que isso foi otimizado no SQL Server 2005+, então COUNT agora é o mesmo que EXISTS neste caso