Oui - vous pouvez utiliser la clause OUTPUT peu connue et peu utilisée dans votre instruction INSERT
INSERT INTO dbo.YourTable(col1, col2, col3, ...., ColN)
OUTPUT Inserted.Col1, Inserted.Col5, Inserted.ColN
VALUES(val1, val2, val3, ....., valN)
Cela renvoie un ensemble normal de données, que vous pouvez traiter selon vos besoins.
Comme le montrent les documents MSDN, vous pouvez également envoyer les valeurs OUTPUT, par exemple. une variable de table ou une table temporaire pour une utilisation ultérieure, si nécessaire.
Pour répondre à votre question mise à jour, utilisez ceci :
INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")