Come marc_s ha scritto, SQL Server 2008 non ha sequenze ancora. Ma possiamo usare qualche trucco per imitare il comportamento delle sequenze. A volte abbiamo bisogno di generare un identificatore per alcune tabelle senza inserire alcun dato. Oppure generare ID per diverse tabelle. In tale situazione io uso questa struttura.
Creare una tabella:
create table IdSequence (id int identity(1,1))
Poi ho utilizzare questo script per generare Id:
begin tran
insert into IdSequence output inserted.id default values
rollback tran
Nella mia app Assomiglia:
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;
}
fonte
2015-11-05 15:38:18