Yes - you can use the little known and little used OUTPUT clause in your INSERT statement
INSERT INTO dbo.YourTable(col1, col2, col3, ...., ColN)
OUTPUT Inserted.Col1, Inserted.Col5, Inserted.ColN
VALUES(val1, val2, val3, ....., valN)
This returns a normal set of data, that you can deal with as you need to.
As the MSDN docs show, you can also send the OUTPUT values into e.g. a table variable or temp table for later use, if you need to.
To answer your updated question, use this:
INSERT INTO dbo.EMPDETAILS(EmpName)
OUTPUT Inserted.EmpID
VALUES("John")
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…