One way might be to use the NTILE function:-- Setup Sample DataDECLARE @Employee TABLE (Employee VARCHAR(50))INSERT @Employee VALUES('Employee1'),('Employee2'),('Employee3'),('Employee4')DECLARE @Order TABLE (OrderID INT, Employee VARCHAR(50))INSERT @Order (OrderID) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)DECLARE @EmployeeCount INT;SET @EmployeeCount = ( SELECT COUNT(*) FROM @Employee )-- Update TableUPDATE OSET Employee = E.EmployeeFROM ( SELECT Employee, NTILE(@EmployeeCount) OVER (ORDER BY OrderID) AS RowNum FROM @Order AS A ) AS OINNER JOIN ( SELECT Employee, ROW_NUMBER() OVER (ORDER BY Employee) AS RowNum FROM @Employee ) AS E ON O.RowNum = e.RowNumSELECT *FROM @Order--ResultsOrderID Employee------- --------1 Employee12 Employee13 Employee14 Employee25 Employee26 Employee27 Employee38 Employee39 Employee410 Employee4