我有一個表有一個主鍵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