2010-07-29 16 views
52

Utilizzo della GUI di Sql Express Management Studio 2008 (non con codifica), come è possibile eseguire una chiave primaria con incremento automatico?Chiave primaria con incremento automatico nelle tabelle SQL

Lasciatemi spiegare: c'è una tabella che ha una colonna denominata "id" e gli elementi di questa colonna sono impostati come chiavi primarie. Voglio rendere questa colonna auto-incrementata, ma come?

Acclamazioni

+3

Naturalmente non dovrebbe apportare modifiche attraverso l'interfaccia grafica. È necessario scrivere script per eseguire attività e inserire htem nel controllo del codice sorgente, in modo da poter distribuire facilmente le modifiche al database in produzione. La GUI è uno strumento molto cattivo da utilizzare per cambiare tabelle, soprattutto quando diventano grandi. – HLGEM

risposta

93
  1. Presumibilmente si trovano nel design del tavolo. In caso contrario: fare clic con il pulsante destro del mouse sul nome della tabella - "Design".
  2. Fare clic sulla colonna richiesta.
  3. In "proprietà della colonna" (in basso), scorrere fino alla "Specificazione Identità" sezione, espanderlo, quindi toggle "(Is Identity)" a "".

enter image description here

10

pulsante destro del mouse sul tavolo SSMS, 'Design', e fare clic sulla colonna id. Nelle proprietà, imposta l'identità da seminare @ e.g. 1 e per avere un incremento di 1 - salva e il gioco è fatto.

+0

"identità" e "" identità seed "sono disabilitati. Come posso abilitarli? – samsam114

+0

Come per le altre risposte, dovrai contrassegnare la colonna come una colonna di identità in anticipo - impostare" è identità "su" sì " –

6

Non ho Express Management Studio su questa macchina, quindi vado basato sulla memoria. Penso che sia necessario impostare la colonna come "IDENTITY", e ci dovrebbe essere un [+] sotto proprietà dove è possibile espandere e impostare auto-increment su true.

4

per coloro che stanno avendo il problema della ancora non lasciare che si salva una volta che è modificata in base alla risposta qui sotto, effettuare le seguenti operazioni:

Strumenti -> Opzioni -> designer -> Table e Database Designer -> deselezionare "prevenire il salvataggio delle modifiche che richiedono tavolo ri-creazione" scatola -> OK

e cercare di salvare come dovrebbe funzionare ora

0

Penso che ci sia un modo per farlo in fase di definizione come questo

creare tabella impiegare ee ( id identità identità, nome varchar (50), chiave primaria (id) ) .. Sto cercando di vedere se c'è un modo per modificare una tabella esistente e rendere la colonna come Identità che non sembra possibile teoricamente (poiché i valori esistenti potrebbero aver bisogno di modifiche)

9

Anche se il seguente non è il modo per farlo in GUI ma è possibile ottenere autoincrementing semplicemente utilizzando il tipo di dati IDENTITÀ (inizio, incremento):

CREATE TABLE "dbo"."TableName" 
(
    id int IDENTITY(1,1) PRIMARY KEY NOT NULL, 
    name varchar(20), 
); 

l'istruzione di inserimento dovrebbe elencare tutte le colonne tranne id (che sarà riempito con il valore autoincremented):

INSERT INTO "dbo"."TableName" (name) VALUES ('alpha'); 
INSERT INTO "dbo"."TableName" (name) VALUES ('beta'); 

e il risultato di

SELECT id, name FROM "dbo"."TableName"; 

sarà

id name 
-------------------------- 
1  alpha 
2  beta 
Problemi correlati