思路給你:
1、找到你的表中的 連續編號的 最小值。
2、找到你的表中的 連續編號的 最大值。
3、產生一個臨時表,它的一個字段最小值到最大值連續產生記錄。
4、找到臨時表中的 “那個字段中”的 “記錄” 不在 “你的表中” 的 “連續編號” 中存在的所有記錄。
參考代碼如下:
-- 初參條件 針對對象表 LS_bas1數據庫里的 TA1 表 -- 查 TA1 表中 ID 號不連續 缺少的記錄 --定義 三個變量 最小記錄、最大記錄、記錄搜索用 DECLARE @MINID INT,@MAXID INT,@GOINT INT -- 從TA1表中取得 ID最小的、ID最大的記錄 SELECT @MINID = MIN(ID),@MAXID = MAX(ID) FROM LS_bas1.DBO.TA1 -- 從最小記錄開始循環向 臨時表 #LSTAB 里追加記錄,以產生連續的GOID記錄 SET @GOINT = @MINID SELECT @GOINT AS GOID INTO #LSTAB WHILE @GOINT < @MAXID BEGIN SET @GOINT = @GOINT + 1 INSERT INTO #LSTAB(GOID) VALUES (@GOINT) END -- 將#LSTAB中GOID有,與TA1表ID中沒有的記錄找出來,就是你要的 SELECT * FROM #LSTAB WHERE GOID NOT IN ( SELECT ID FROM LS_bas1.DBO.TA1 ) ORDER BY GOID -- 最后,好習慣,清理中間的臨時表 DROP TABLE #LSTAB