Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Numerazione Campo Identity in sql server

    Ciao ragazzi,
    ho un DB in sql server express 2012, che viene popolato tramite applicazione in ASP classico.
    Un campo ID è chiave primaria con identity. Tipo INT
    Mi spiegate perchè ad ogni inserimento non segue una numerazione sequenziale?
    Cioè inserisce:
    1
    1001
    1002
    1003
    ......
    ......
    2

    Come faccio a fargli assegnare la numerazione normale:
    1
    2
    3
    4
    5
    ....
    ....
    Grazie ma non riesco a venirne a capo.
    Grazie

  2. #2
    probabilmente stai leggendo senza aver specificato una ORDER BY ID

  3. #3

    Re: Numerazione Campo Identity in sql server

    Originariamente inviato da forteebello
    Un campo ID è chiave primaria con identity. Tipo INT
    Mi spiegate perchè ad ogni inserimento non segue una numerazione sequenziale?
    Ciao,
    non mi risulta che un campo identity sia adatto al tuo scopo perché
    se cancelli un record ti resta in ogni caso un "buco" nella numerazione.

    A meno di funzionalità introdotte con la ver. 2012 a me non note, le soluzioni sono :
    - ti gestisci il sequenziale a "manina" in un altro campo usando l'identity solo come pk
    - usi ROW_NUMBER ... che però viene calcolata "al volo" senza persistere sul db

    EDIT
    prova a dare un'occhiata alle
    SEQUENCE
    se possono esserti di aiuto


    HTH

  4. #4
    Intanto grazie a tutti.
    Purtroppo sono "novizio" di sql server quindi venendo da Access do per scontate certe cose. La cosa importante è che i campi restino univoci evitando di gestire a manina rischiando di mettere valori duplicati.

    Pero' perchè access lo fa (considerando il campo contatore simile ad identity)

  5. #5
    identity di mssql ti dà campi univoci in sequenza con i "buchi" dovuti alle cancellazioni esattamente come fa il contatore di access. ripeto, probabilmente leggi i record NON in ordine di id.

  6. #6
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da optime
    ..... probabilmente leggi i record NON in ordine di id. ....
    questa è certamente una possibilita reale,


    ma io ho la sensazione che hai convertito ( CAST o CONVERT ) nella applicazione ASP gli ID in formato testo e poi li vedi in ordine crescente ( ma considerandoli testo )
    1
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    2
    20
    21
    eccetera


    Comunque puoi stare tranquillo SQL2012 inserisce gli ID in ordine sequenziale

    .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.