Fastest way to determine if record exists

前端 未结 11 1188
清歌不尽
清歌不尽 2020-11-29 16:16

As the title suggests... I\'m trying to figure out the fastest way with the least overhead to determine if a record exists in a table or not.

Sample query:

11条回答
  •  天涯浪人
    2020-11-29 16:55

    EXISTS (or NOT EXISTS) is specially designed for checking if something exists and therefore should be (and is) the best option. It will halt on the first row that matches so it does not require a TOP clause and it does not actually select any data so there is no overhead in size of columns. You can safely use SELECT * here - no different than SELECT 1, SELECT NULL or SELECT AnyColumn... (you can even use an invalid expression like SELECT 1/0 and it will not break).

    IF EXISTS (SELECT * FROM Products WHERE id = ?)
    BEGIN
    --do what you need if exists
    END
    ELSE
    BEGIN
    --do what needs to be done if not
    END
    

提交回复
热议问题