mssql sqlserver count(*)判断表是否有记录的最优写法


摘要:
下文讲述判断表是否存在记录的优化写法,
常采用exists或top来判断表是否存在记录


1.通常判断表是否存在记录的写法

   declare @row int
   select @row = count(*) from tableName
   if @row >0
    begin
	   ...
	end
   else
   begin
     ...
   end

上面的语句,就是判断tableName表中是否存在记录,

但是上面的查询语句,会导致全表扫描,
下文将讲述优化后的写法

————————-优化后的写法——————–
优化方法1:

   declare @a int 
   if exists(select * from tableName)
   begin 
   set @a =1
   end
   if @a >0
   begin
      print '存在表记录'
   end
   else
   begin
      print '表不存在任何记录'
   end

优化方法2:

   declare @a int  
   select @a =    (select count(*) from (select top 1 * from tableName )tmp)   
   
   if @a >0
   begin
      print '存在表记录'
   end
   else
   begin
      print '表不存在任何记录'
   end