Ivan Gentile

Office and .NET blog
posts - 24, comments - 0, trackbacks - 2

Resettare il campo contatore in SQL SERVER (VB.Net, ASP.Net e C#)

Qualche tempo fa, ho letto in un forum che qualcuno cecava una soluzione per riazzerare il campo contatore, dopo aver eliminato il contenuto di una tabella in SQL Server.
E' veramente molto semplice!
... è anche possibile fare ripartire il contatore da un certo numero o dal numero max che ha raggiunto.
Si pensi al caso in cui si voglia ripristinare una tabella dopo aver eliminato un certo numero di record.

Supponiamo che Amico sia il nome della nostra tabella e IdAmico quello del campo contatore.
Analizziamo tutte le situazioni:

1 - Fare ripartire da 1 il contatore:

                                  DBCC CHECKIDENT ('Amico', RESEED, 1);

2 - Fare ripartire il contatore da un certo valore (Esempio 20):

                                  DBCC CHECKIDENT ('Amico', RESEED, 20);

3 - Fare ripartire il contatore dal massimo valore raggiunto (ovviamente se la tabella non è vuota!!):

                DECLARE @MaxVal int SET @MaxVal = (SELECT MAX(IdAmico) FROM Amico)

                DBCC CHECKIDENT ('Amico', RESEED, @MaxVal)

Ovviamente per esguire questo monando bisogna avere tutte le autorizzazioni sul database, altrimenti il darà nessun risultato.

Ciao

Ivan

posted on sabato 18 febbraio 2006 8.51