Here is a sample code
CREATE TABLE Data
(
ID INT,
DocumentScanLabelId INT,
BookingId INT,
NumberOfLables INT
)
INSERT INTO Data
SELECT 1, 6, 21845914, 3 UNION ALL
SELECT 2, 7, 21877297, 3
DECLARE @ID INT
DECLARE @RowCount INT
DECLARE @NumberOfLables INT
DECLARE @MaxID INT
SELECT @MaxID = MAX(T), @Id = MIN(T) FROM
(
SELECT DENSE_RANK() OVER (ORDER BY ID) AS T, * FROM Data
) X
WHILE @Id <= @MaxID
BEGIN
SELECT @NumberOfLables = NumberOfLables FROM
(
SELECT DENSE_RANK() OVER (ORDER BY ID) AS T, * FROM Data
) X
WHERE T = @Id
SELECT @RowCount = COUNT(*) FROM
(
SELECT DENSE_RANK() OVER (ORDER BY ID) AS T, * FROM Data
) X
WHERE T = @Id
WHILE @NumberOfLables > @RowCount
BEGIN
INSERT INTO Data
SELECT TOP 1 ID, DocumentScanLabelId, BookingId, NumberOfLables FROM
(
SELECT DENSE_RANK() OVER (ORDER BY ID) AS T, * FROM Data
) X
WHERE T = @Id
SET @RowCount = @RowCount + 1
END
SET @ID = @ID + 1
END
SELECT * FROM Data ORDER BY ID
I am not sure what your requirement is but I would like to add that it is not a good idea to insert duplicate records into your table.