Mi auguro che SQL Server abbia questa funzionalità. Farebbe così tante cose più facili.
Ecco come sono arrivato a questo.
Creare una tabella denominata tblIdentities. In questa tabella metti una riga con i valori minimo e massimo e con quale frequenza il numero di sequenza deve essere ripristinato. Inserisci anche il nome di una nuova tabella (chiamala tblMySeqNum). In questo modo, l'aggiunta di più generatori di Sequence Number in seguito sarà abbastanza facile.
tblMySeqNum ha due colonne. ID (che è un'identità int) e InsertDate (che è una colonna di data e ora con un valore predefinito di GetDate()).
Quando è necessario un nuovo numero seq, chiamare uno sproc che si inserisce in questa tabella e utilizzare SCOPE_IDENTITY() per ottenere l'identità creata. Assicurati di non aver superato il massimo in tblIdentities. Se hai quindi restituito un errore. Se non restituisci il tuo numero di sequenza.
Ora, per ripristinare e pulire. Avere un lavoro che viene eseguito regolarmente come necessario che controlla tutte le tabelle elencate in tblIdentites (solo uno per ora) per vedere se devono essere ripristinati. Se hanno raggiunto il valore di reset o il tempo, chiamare DBCC IDENT RESEED sul nome della tabella elencata nella riga (tblMySeqNum in questo esempio). Questo è anche un buon momento per cancellare le righe in più di cui non hai realmente bisogno in quella tabella.
NON eseguire la pulizia o il seeding nella propria sproc che ottiene l'identità. Se lo fai, il tuo generatore di numeri di sequenza non scalerà affatto.
Come ho detto, renderebbe così tante cose più semplici di questa funzionalità in SQL Server, ma ho scoperto che funziona abbastanza bene.
Vaccano
Ho bisogno l'esatto equivalente, e l'uso di una procedura è stata la prima idea pure. Mi stavo chiedendo se ci fosse una soluzione più "naturale" a questo. – Raymond
Sei sfortunato qui allora. – Dheer
Sembra che SQL Server 2012 abbia introdotto gli oggetti SEQUENCE per http://stackoverflow.com/questions/282943/how-would-you-implement-sequences-in-microsoft-sql-server e http://msdn.microsoft.com/ it-it/library/ff878091.aspx – Loudenvier