Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Colonna identity e generazione id
domenica 08 gennaio 2012 - 15.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
SQL Server 2008 R2
|
SQL Server 2008
|
SQL Server 2005
|
SQL Server Express
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
dom 8 gen 2012 - 15:10
è una domanda abbastanza banale ma ne vorrei avere la certezza, il punto è questo:
ho creato una tabella con una colonna "id" impostata su identity - identity increment 1 - identity seed 1 in modo da farmi generare un int incrementale ad ogni inserimento.
Quando elimino un record e ne ricreo un altro, l'incremento non parte da quello precedente bensì dall'ultimo che è stato inserito e cioè se per esempio ho la seguente tabella:
id 1
id 2
...
ora elimino il record con id 2 e ne inserisco un altro, il nuovo record avrà id 3 e non id 2:
id 1
id 3
...
Vorrei semplicemente sapere se questo comportamento è implicito in Sql e non varia oppure può variare in base a qualche fattore tipo la versione di Sql o altro?
A me sta bene questa condizione purchè rimanga tale.
Grazie in anticipo
Andrea Restucci - Web Developer
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 8 gen 2012 - 15:14
>Vorrei semplicemente sapere se questo comportamento è implicito
>in Sql e non varia oppure può variare in base a qualche fattore
>tipo la versione di Sql o altro?
Ciao Andrea,
Il comportamento è del tutto normale.
La proprietà IDENITITY e le nuove sequence che saranno introdotte con SQL Server 2012 non sono progettate per "colmare i buchi" ma generano automaticamente nuovi valori in base al seme ed al fattore di incremento specificati in fase di definizione.
>Grazie in anticipo
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
dom 8 gen 2012 - 16:08
scusa visto che ci siamo mi potresti spiegare brevemente il significato di 'seed' in questo contesto?
ho sempre lasciato il valore di default 1 ma non ho capito a cosa serve...
aaaaaaa ok forse è il numero da cui parte la sequenza?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 8 gen 2012 - 17:48
>scusa visto che ci siamo mi potresti spiegare brevemente il significato
>di 'seed' in questo contesto?
>ho sempre lasciato il valore di default 1 ma non ho capito a
>cosa serve...
>
>aaaaaaa ok forse è il numero da cui parte la sequenza?
Esatto. Dai BOL:
"seed
Valore utilizzato per la prima riga caricata nella tabella".
http://msdn.microsoft.com/it-it/library/ms174639.aspx
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
dom 8 gen 2012 - 19:49
scusa volevo accettare la risposta ma non vedo più il pulsante "accetta"...
a ok ora è comparso
Torna su
Stanze Forum
Elenco Threads
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 !