--每个都加一,以此来找出最小的未用ID SELECT Min(T1.ID)+1 FROM dbo.TestTable T1 -- 不用查询已经存在的ID WHERE (T1.ID+1) NOT IN (SELECT T2.ID FROM dbo.TestTable T2) --因为不会为0,所以如果ID为1时上面的语法将查不到1的空缺,所以要加这个语句 --如果为NULL就说明是1空了,因为最大值加1肯定是存在的。 AND EXISTS (SELECT T3.ID FROM dbo.TestTable T3 WHERE T3.ID =1)