Something in this neighbourhood-- Prepare sample dataDECLARE @TableA TABLE ( Code CHAR(4) NOT NULL, Tests TINYINT NOT NULL )INSERT @TableA ( Code, Tests )SELECT '0003', 1 UNION ALLSELECT '0005', 2 UNION ALLSELECT '0042', 1 UNION ALLSELECT '0913', 3DECLARE @TableB TABLE ( Code CHAR(4) NOT NULL )INSERT @TableB ( Code )SELECT '0003' UNION ALLSELECT '0005' UNION ALLSELECT '0042' UNION ALLSELECT '0913'-- Display initial state of TableBSELECT *FROM @TableB-- Do the workINSERT @TableB ( Code )SELECT CodeFROM ( SELECT a.Code, v.Number FROM @TableA AS a INNER JOIN master.dbo.spt_values AS v ON v.type = 'P' WHERE v.Number BETWEEN 1 AND a.Tests EXCEPT SELECT Code, ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Code) AS Number FROM @TableB ) AS d-- Display current state of TableBSELECT *FROM @TableB
N 56°04'39.26"E 12°55'05.63"