Что является лучшим в производительности к решительному, если объект существует или не особенно, если таблица содержит больше чем 700 000 строк
if (Select count(id) from Registeration where email='email@w.cn') > 0
print 'Exist'
else
print 'Not Exist'
ИЛИ
if Exists(Select id from Registeration where email='email@w.cn')
print 'Exist'
else
print 'Not Exist'
EXISTS, всегда
Редактировать, чтобы было понятно
Конечно, в этом случае, если столбец email уникален и индексирован, это будет близко.
Вообще, EXISTS использует меньше ресурсов и более корректен. Вы ищете существование строки, а не "больше нуля", даже если они одинаковые
Edit2: В EXISTS вы можете использовать NULL, 1, ID или даже 1/0: это не проверяется...
21 мая 2011 редактировать:
Похоже, что это было оптимизировано в SQL Server 2005+, так что COUNT теперь то же самое, что EXISTS в этом случае
также примите во внимание, что Count() возвращает только int, и если вы посчитаете некоторые данные, которые превышают int, это приведет к ошибке