Usa la clausola di uscita del 2005:
DECLARE @output TABLE (id int)
Insert into A (fname, lname)
OUTPUT inserted.ID INTO @output
SELECT fname, lname FROM B
select * from @output
ora la tua variabile di tabella ha i valori di identità di tutte le righe che inserisci.