思路給你:
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
