Cómo se escribió marc_s, SQL Server 2008 no tiene secuencias aún. Pero podemos usar algún truco para imitar el comportamiento de las secuencias. Algunas veces necesitamos generar un identificador para alguna tabla sin insertar ningún dato. O genere ID para diferentes tablas. En tal situación, uso esta estructura.
Crear una tabla:
create table IdSequence (id int identity(1,1))
Entonces utilizar este script para generar Id:
begin tran
insert into IdSequence output inserted.id default values
rollback tran
En mi aplicación que parece:
public Int32 GetNextId()
{
Int32 id = 0;
using (var transaction = Session.BeginTransaction())
{
id = Session.CreateSQLQuery("insert IdSequence output inserted.id default values").UniqueResult<Int32>();
transaction.Rollback();
}
return id;
}