none
id contatore a incremento automatico RRS feed

  • Domanda

  • salve

    ho una tabella tipoClienti

    ID campo contatore con incremento automatico

    ho creato 10 record e quindi ID varia da 1 a 10.

    ho provato ad aggiungere un valore ma in fase di inserimento da management tools non e' andato a buon fine.

    ora aggiungendo un nuovo record Id e' diventato 12 e poi il successivo 13

    poiche' ho lo stesso database in locale vorrei che

    id 1-10,11,12,13

    come posso "compattare" la tabella e fare in modo di avere il numero progressivo?

    pensavo di cancellare i 2 record con id 12 e 13 e poi cosa devo fare prima di inserirli nuovamente?

    Grazie ancipatamente

    lunedì 17 febbraio 2014 15:07

Risposte

  • Ciao,

    scusate se aggiungo una nota.. A mio avviso se ti basi su un identità, dovrai eseguire di frequente le operazioni di allineamento. Se ti serve un numero progressivo seguente, l'identità non nasce per quello. A mio avviso, usarla come chiave surrogata (e quindi ignorare la consequenzialità dei valori) è ottimo, ma come progressivo tecnico opterei per altre strade. Anche perché, se ci pensi, l'operazione che tu chiami "compattare" a mano a mano che le righe aumentano di numero, diventerà sempre più impegnativa, e ogni errore ti creerà buchi, constringendoti ancora a compattazioni. Inoltre, come vedi, ti servono dei lock molto pesanti, il che, in produzione è meglio non avere mai.

    Ciao


    Alessandro Alpi SQL Server MVP

    mercoledì 19 febbraio 2014 11:13
    Moderatore

Tutte le risposte

  • cancella i records con id 12 e 13, poi usa questo comando

    DBCC CHECKIDENT('tipoClienti', RESEED, 10)


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 17 febbraio 2014 15:32
    Moderatore
  • prima di tutto grazie del messaggio

    in locale ho provato e non ho avuto problemi.

    sul server invece ho eseguito lo stesso comando, ma eseguendo la query rimane in  esecuzione

    tutti gli utenti devono essere fuori (ho un'applicazione in access che ha le tabelle collegate)

    Grazie

    martedì 18 febbraio 2014 11:20
  • grazie del feedback, aspetta di avere l'accesso esclusivo.

    ciao.


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    martedì 18 febbraio 2014 11:27
    Moderatore
  • Ciao,

    scusate se aggiungo una nota.. A mio avviso se ti basi su un identità, dovrai eseguire di frequente le operazioni di allineamento. Se ti serve un numero progressivo seguente, l'identità non nasce per quello. A mio avviso, usarla come chiave surrogata (e quindi ignorare la consequenzialità dei valori) è ottimo, ma come progressivo tecnico opterei per altre strade. Anche perché, se ci pensi, l'operazione che tu chiami "compattare" a mano a mano che le righe aumentano di numero, diventerà sempre più impegnativa, e ogni errore ti creerà buchi, constringendoti ancora a compattazioni. Inoltre, come vedi, ti servono dei lock molto pesanti, il che, in produzione è meglio non avere mai.

    Ciao


    Alessandro Alpi SQL Server MVP

    mercoledì 19 febbraio 2014 11:13
    Moderatore