When the application demands that the just inserted value should be returned back.In such cases it is much wise to use GUID instead of auto- incrementing identity column in the database. One benifit of using GUID is that it can be generated programatically beforehand using the GUID class in .net frmework We can have Guid guid  = new Guid(); Now we can pass this newly generated guid to any no of insert statements this way we can save our application from the complex logic of using output parameters or return statement and also from the use of SCOPE_IDENTITY(). But you are free to use the other approach also it all depends on the need of the application