A more scalable solution that doesn't require serialization is this: CREATE PROCEDURE [dbo].[uspGetNextID] ( @inID BIGINT OUT ) AS SET NOCOUNT ON INSERT INTO SequenceTable DEFAULT VALUES -- Empty table with an IDENTITY column; DELETE FROM SequenceTable WITH (READPAST); SET @inID = SCOPE_IDENTITY(); RETURN;