Dupa cum se stie, in SQL Server nu exista notiunea de Secventa, asa cum majoritatea bazelor de date au. Este totusi o functionalitate foarte importanta si de aceea foarte multi incearca sa o simuleze. In continuare voi prezenta o modalitate prin care se poate simula o secventa.
In primul rand avem nevoie de un tabel care sa contina un camp IDENTITY. Acesta ne va asigura ca id-ul unui rand nou este intotdeauna unic. Putem spune ca deja avem implementata o secventa. Simpla inserare a unei inregistrari inseamna incrementarea ultimului ID generat, acesta fiind de fapt urmatorul numar din secventa.

Un astfel de tabel poate fi ceva de genul:

CREATE TABLE [sq_main] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [data] [varchar] (10) NOT NULL 
) ON [PRIMARY]
GO


Modalitatea de extragere a unui id din secventa depinde de modul de implementare a fiecarei aplicatii in parte. Eu unul folosesc o procedura stocata de genul:

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO


CREATE  procedure getIDFromSequence(@newID int out) as
begin 
    set @newID = -1 
    insert into sequence (data) values ('x')
    set @newID = @@IDENTITY
    delete from sequence where id = @newID 
end

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

Se vede foarte usor ca procedura insereaza un rand in secventa dupa care il sterge. Intre timp citeste noul numar generat in campul IDENTITY si il intoarce ca parametru de output al procedurii.