porque no usas un SP (stored procedure), usando parametros de entrada y uno de salida que te regresará el ID del registro 
INSERTADO 
Podría quedarte algo como ésto  
 Cita:  CREATE PROCEDURE InsertarRegistro
(
    @parametro1    int,
    @parametro2    int,
    @ID INT,
    @ultimoID OUTPUT
)
AS
INSERT INTO Tabla
(
Campo1,
Campo2
) 
VALUES
(
@parametro1,
@parametro2
)
WHERE ID = @ID
 
SELECT 
    @ultimoID = @@identity
    Y con ello recuperas el valor de tu id. 
No es dificl, intentalo.  
  
Saludos y suerte