[VB.NET] Reset e ordinamento campo IDENTITY in Sql Server Express 2005...

martedì 22 marzo 2011 - 17.30
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows 7  |  Windows Vista  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2005  |  SQL Server Express

jackk87 Profilo | Junior Member

Buonasera a tutti,
sto sviluppando un'applicazione in VB.NET con DB Sql Server Express 2005 e vorrei resettare e ordinare il campo identity di una tabella cioè:
in Access facendo Compatta e Ripristina DB automaticamente tutte le variabili contatore venivano resettate e ordinate Es:
PRIMA DOPO
1° Record chiave primaria = 1 1° Record chiave primaria = 1
2° Record chiave primaria = 5 2° Record chiave primaria = 2
3° Record chiave primaria = 7 3° Record chiave primaria = 3
Prossimo Contatore=9 Prossimo Contatore=4

Vorrei effettuare la stessa cosa in Sql Server Express 2005 è possibile farlo?
ho provato con DBCC CHECKIDENT (tabella, reseed, 0) ma con questa istruzione resetto solo il contatore (Identity) quindi se la tabella è vuota va bene ma se contiene record potrei ricevere degli errori quando il nuovo contatore già esiste.

Spero che qualcuno mi aiuti
Grazie in anticipo a tutti

lbenaglia Profilo | Guru

>Buonasera a tutti,
>sto sviluppando un'applicazione in VB.NET con DB Sql Server Express
>2005 e vorrei resettare e ordinare il campo identity di una tabella
>cioè:
>in Access facendo Compatta e Ripristina DB automaticamente tutte
>le variabili contatore venivano resettate e ordinate Es:
>PRIMA DOPO
>1° Record chiave primaria = 1 1° Record chiave primaria
>= 1
>2° Record chiave primaria = 5 2° Record chiave primaria
>= 2
>3° Record chiave primaria = 7 3° Record chiave primaria
>= 3
>Prossimo Contatore=9 Prossimo Contatore=4
>
>Vorrei effettuare la stessa cosa in Sql Server Express 2005 è
>possibile farlo?

Ciao,

Per quale motivo avresti bisogno di resettare una colonna IDENTITY di una tabella piena di dati?

>Grazie in anticipo a tutti
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

jackk87 Profilo | Junior Member

>Ciao,
>
>Per quale motivo avresti bisogno di resettare una colonna IDENTITY
>di una tabella piena di dati?
>
>>Grazie in anticipo a tutti
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/

Vorrei resettare la colonna IDENTITY perchè essendo un campo int eliminando e inserendo un record si arriva a superare la soglia del limite di un int nonostante il numero di record presenti non è quello presumo che ci sarà un errore giusto?

lbenaglia Profilo | Guru

>Vorrei resettare la colonna IDENTITY perchè essendo un campo
>int eliminando e inserendo un record si arriva a superare la
>soglia del limite di un int nonostante il numero di record presenti
>non è quello presumo che ci sarà un errore giusto?
Esatto, ma stimi di arrivare a 4 miliardi di inserimenti?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

jackk87 Profilo | Junior Member

>>Vorrei resettare la colonna IDENTITY perchè essendo un campo
>>int eliminando e inserendo un record si arriva a superare la
>>soglia del limite di un int nonostante il numero di record presenti
>>non è quello presumo che ci sarà un errore giusto?
>Esatto, ma stimi di arrivare a 4 miliardi di inserimenti?
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/

Non lo stimo però mai dire mai intanto ti ringrazio per i suggerimenti vorrei sapere solo se questa operazione è possibile?se si è complessa?
grazie ancora

lbenaglia Profilo | Guru

>Non lo stimo però mai dire mai intanto ti ringrazio per
>i suggerimenti vorrei sapere solo se questa operazione è
>possibile?se si è complessa?
Devi:

1) Creare una nuova tabella
2) Popolarla
3) Droppare quella di origine
4) Rinominare quella di destinazione con il nome originario.

La domanda è: ha senso?
E soprattutto, cosa succede se quel valore è stato utilizzato come FK in altre tabelle (la procedura descritta ovviamente ti viene negata, a meno di eliminare prima il constraint)?

>grazie ancora
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

jackk87 Profilo | Junior Member

>>Non lo stimo però mai dire mai intanto ti ringrazio per
>>i suggerimenti vorrei sapere solo se questa operazione è
>>possibile?se si è complessa?
>Devi:
>
>1) Creare una nuova tabella
>2) Popolarla
>3) Droppare quella di origine
>4) Rinominare quella di destinazione con il nome originario.
>
>La domanda è: ha senso?
>E soprattutto, cosa succede se quel valore è stato utilizzato
>come FK in altre tabelle (la procedura descritta ovviamente ti
>viene negata, a meno di eliminare prima il constraint)?
>
>>grazie ancora
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
Sei stato molto chiaro quindi non ha senso resettare una colonna IDENTITY.
Grazie per il tuo consiglio accetto la risposta e chiudo come risolto

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5