Use a cláusula de saída de 2005:
DECLARE @output TABLE (id int)
Insert into A (fname, lname)
OUTPUT inserted.ID INTO @output
SELECT fname, lname FROM B
select * from @output
agora sua variável de tabela tem os valores de identidade de todas as linhas que você insere.