判斷記錄是否存在,要不是語句不夠簡潔,要不就是性能有很大問題。
我進行了優化後,最簡潔簡單性能最優的的sql語句,用來判斷表中的記錄是否存在:
select isnull((select top(1) 1 from tableName where conditions), 0)
結果爲 1,則說明記錄存在;結果爲 0,則說明記錄不存在。
網上的常見的有問題的語句:
錯誤1:
select COUNT(*) from tableName where conditions
count(*) 計算會對聚集索引進行掃描和計算,reads 特別多,特別是 cpu 資源佔用極大。
錯誤2:
if exists (select * from tableName where conditions) select '1' else select '0'
這種方法稍微有點靈性,但是卻很不簡潔。
同時由於 select * 前面有 exists ,所以該語句並沒有性能問題,只是語法不夠簡潔