LISTING 1: Code to Find Missing Identity Values SELECT * FROM (SELECT *, '+' + CONVERT(varchar,(SELECT MIN(regionid) FROM region WHERE regionid > A.regionid) - (regionid + 1)) 'DIFFERENCE' FROM region A WHERE (SELECT MIN(regionid) FROM region WHERE regionid > A.regionid) - regionid >= 2 UNION ALL SELECT *, '-' + '' 'DIFFERENCE' FROM region A WHERE regionid - (SELECT MAX(regionid) FROM region WHERE regionid < A.regionid) >= 2) AS OUTER_TAB ORDER BY 1, CASE [DIFFERENCE] WHEN '-' THEN 0 ELSE [DIFFERENCE] END