我有一个表有一个主键user_id的用户,当我们插入一个user_details.Now时它会自动增加我有一个需求,我需要列出所有的缺少(或删除)user_ids。 我试过这种方式。从一个自动递增的主键列出丢失的ID
DECLARE @NUMBER BIGINT = (SELECT MIN(USER_ID) FROM USERS)
DECLARE @MAX BIGINT = (SELECT MAX(USER_ID) FROM USERS)
CREATE TABLE TEMP_USERS (USER_ID BIGINT)
WHILE @NUMBER <= @MAX
BEGIN
INSERT INTO TEMP_USERS
VALUES(@NUMBER);
SET @NUMBER = @NUMBER+1;
END
SELECT USER_ID from TEMP_USERS
EXCEPT
SELECT USER_ID from USERS
但这需要太长时间。 有没有其他方法来提高性能?
感谢, 维杰
的要求是很奇怪的序列中越100缺少的用户ID;如果您需要知道按键序列中的缺失值,通常需要将自动增量字段用于不适合的内容。你的执行计划说什么?瓶颈在哪里?信息越少,答案越模糊。作为一个狂热的客人,不保证尝试使用连接而不是“EXCEPT”。 – Paolo 2014-10-08 08:01:58