Sì, puoi utilizzare la poco conosciuta e poco utilizzata clausola OUTPUT nella tua dichiarazione INSERT
INSERT INTO dbo.YourTable(col1, col2, col3, ...., ColN)
OUTPUT Inserted.Col1, Inserted.Col5, Inserted.ColN
VALUES(val1, val2, val3, ....., valN)
Questo restituisce un normale insieme di dati, che puoi gestire in base alle tue esigenze.
Come mostrano i documenti MSDN, puoi anche inviare i valori OUTPUT ad es. una variabile di tabella o una tabella temporanea per un uso successivo, se necessario.
Per rispondere alla tua domanda aggiornata, usa questo:
INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")