Если вы уверены, что в этих таблицах будет одинаковое количество строк.
Тогда может быть что-то вроде этого:
;WITH CTE
AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ID) AS RowNbr,
mapNew.ID
FROM
@map_new AS mapNew
),CTE2
AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY ID) AS RowNbr,
mapOld.ID
FROM
@map_old AS mapOld
)
INSERT INTO @map(ID,ID2)
SELECT
CTE.ID,
CTE2.ID
FROM
CTE
JOIN CTE2
ON CTE.RowNbr=CTE2.RowNbr
SELECT * FROM @map