+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Creare una Tabella con T-SQL con un ID CONTATORE

  1. #1
    Buongiorno a tutti,

    Uso SQL Server Management Studio

    vorrei creare una Tabella con un campo ID tipo CONTATORE (tanto per capirci il contatore di un db.mdb che incrementa il valore di 1 e nel quale, essendo indicizzato, non sono ammessi valori duplicati).

    CREATE TABLE TABNomi (
    ID INTEGER PRIMARY KEY,
    Cognome CHAR(50) NULL,
    Nome CHAR(50) NULL
    );

    e poi popolare la Tabella

    INSERT INTO TABNomi VALUES ( 1, 'Agosti', 'Maristella' );

    Devo usare IDENTITY (1,1), oppure con la PRIMARY KEY non e' necessario?

    Ho provato con questo codice

    CREATE TABLE [dbo].TABNomi2 (
    ID [int] IDENTITY (1,1) NOT NULL,
    [Cognome] [varchar] (50) NULL,
    [Nome] [varchar] (50) NULL,
    ) ON [PRIMARY]

    INSERT INTO TABNomi2 VALUES ( 1, 'Agosti', 'Maristella' );

    ma mi ritorna questo errore:

    Messaggio 8101, livello 16, stato 1, riga 1
    An explicit value for the identity column in table 'TABNomi2' can only be specified when a column list is used and IDENTITY_INSERT is ON.

    Grazie e buon sabato
    Massimo
    Ultima modifica di IronButterfly; 12-06-2021 13:49 

  2. #2
    Non devi inserire il valore del campo IDENTITY proprio perché lo gestisce il DBMS (a meno che non lo voglia esplicitamente fare settando IDENTITY_INSERT).

    Scriverai

    INSERT INTO TABNomi2 VALUES ( 'Agosti', 'Maristella' );

    e basta.
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    Ciao Antonio,

    Si ok.

    Grazie

  4. #4
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Quote Originariamente inviato da IronButterfly Visualizza il messaggio
    Devo usare IDENTITY (1,1), oppure con la PRIMARY KEY non e' necessario?
    Aggiungo una postilla: con PRIMARY KEY indichi qual è il campo che rappresenta la chiave primaria della tabella, ossia quel campo che contiene un valore per il record che è univoco all'interno della tabella di appartenenza e lo identifica.

    Il fatto che un campo IDENTITY, ossia autoincrementato (in base ai valori specificati nella clausola) sia anche una PRIMARY KEY è una condizione abbastanza frequente (perché l'identity viene usato per creare un valore automatico e univoco, poiché autoincrementante) ma non è obbligatorio.

    In sintesi, può anche capitare di aver un campo IDENTITY che non è una PRIMARY KEY.

    Un saluto!
    ℹ️ Leggi di più su _alka_ ...

  5. #5
    Quote Originariamente inviato da _alka_ Visualizza il messaggio
    Aggiungo una postilla: con PRIMARY KEY indichi qual è il campo che rappresenta la chiave primaria della tabella, ossia quel campo che contiene un valore per il record che è univoco all'interno della tabella di appartenenza e lo identifica.

    Il fatto che un campo IDENTITY, ossia autoincrementato (in base ai valori specificati nella clausola) sia anche una PRIMARY KEY è una condizione abbastanza frequente (perché l'identity viene usato per creare un valore automatico e univoco, poiché autoincrementante) ma non è obbligatorio.

    In sintesi, può anche capitare di aver un campo IDENTITY che non è una PRIMARY KEY.

    Un saluto!
    Grazie
    Ciao!

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Tabella con record duplicati e contatore
    Da mailman_1969 nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 11-06-2020, 10:41
  2. creare doppio contatore
    Da Maxgarb nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 06-07-2017, 16:53
  3. creare un contatore che aggiorna il numero con un pulsante
    Da Pierza91 nel forum Microsoft Excel
    Risposte: 16
    Ultimo Post: 05-07-2014, 19:44
  4. ADOX problemi per creare campo contatore
    Da suchigno nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 12-05-2008, 16:38
  5. [MsSQL]Creare un contatore
    Da treccina4ever nel forum Microsoft SQL Server
    Risposte: 2
    Ultimo Post: 08-01-2008, 19:31