it-swarm.com.de

Automatisches Inkrementieren des Primärschlüssels in SQL Server Management Studio 2012

Wie kann ich auto increment den primary key in einer SQL Server Datenbanktabelle suchen? Ich habe das Forum durchgesehen, kann aber nicht sehen, wie.

Ich habe mir die Eigenschaften angesehen, kann aber keine Option sehen. Ich habe eine Antwort gesehen, bei der Sie zur Spezifikationseigenschaft Identity gegangen sind und sie auf yes gesetzt haben und Identity increment auf 1 gesetzt haben, aber das Abschnitt ist ausgegraut und ich kann das Nein nicht in Ja ändern.

Es muss einen einfachen Weg geben, dies zu tun, aber ich kann es nicht finden.

403
Ledgemonkey

Stellen Sie sicher, dass der Datentyp der Schlüsselspalte int ist, und legen Sie die Identität dann manuell fest, wie in der Abbildung dargestellt

enter image description here

Oder führen Sie einfach diesen Code aus

-- ID is the name of the  [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID 
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

der Code wird ausgeführt, wenn ID nicht die einzige Spalte in der Tabelle ist

Bildreferenz-Fifos

647
Raab

Wenn Sie die Tabelle erstellen, können Sie wie folgt eine IDENTITY -Spalte erstellen:

CREATE TABLE (
  ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  ...
);

Die Eigenschaft IDENTITY erhöht die Spalte automatisch ab Nummer 1. (Beachten Sie, dass der Datentyp der Spalte eine Ganzzahl sein muss.) Wenn Sie diese zu einer vorhandenen Spalte hinzufügen möchten, verwenden Sie ein ALTER TABLE = Befehl.

Bearbeiten:
Ein bisschen getestet, und ich kann keine Möglichkeit finden, die Identitätseigenschaften über das Fenster Spalteneigenschaften für verschiedene Tabellen zu ändern. Wenn Sie eine Spalte zu einer Identitätsspalte machen möchten, MÜSSEN Sie einen ALTER TABLE -Befehl verwenden.

164
Josien

Sie müssen den Abschnitt Identität erweitern, um Increment und Seed verfügbar zu machen.

enter image description here

Bearbeiten: Ich nahm an, dass Sie einen Integer-Datentyp haben, nicht char (10). Das ist vernünftig, würde ich sagen und gültig, als ich diese Antwort gepostet habe

84
gbn

Erweitern Sie Ihre Datenbank, erweitern Sie Ihre Tabelle, klicken Sie mit der rechten Maustaste auf Ihre Tabelle und wählen Sie design aus der Dropdown-Liste. ITlooks like this

Gehen Sie nun zu Spalteneigenschaften, scrollen Sie nach unten und suchen Sie Identitätsspezifikation, erweitern Sie es, und Sie werden Ist Identität finden. Machen Sie es zu Ja. Wählen Sie nun Identity Increment rechts darunter und geben Sie den Wert an, den Sie inkrementieren möchten. enter image description here

31
FIFO BIZSOL

Vielleicht fehlt mir etwas, aber warum funktioniert das nicht mit dem SEQUENCE-Objekt? Ist das nicht das, wonach du suchst?

Beispiel:

CREATE SCHEMA blah.
GO

CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;

CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc

Verwenden Sie zum Referenzieren der Zeichenfolge in beispielsweise einem INSERT-Befehl einfach Folgendes:

NEXT VALUE FOR blah.blahsequence

Weitere Informationen und Optionen für SEQUENCE

7
Techie Joe

Wenn Sie Datentyp: int verwenden, können Sie die Zeile auswählen, die automatisch inkrementiert werden soll, und zum Tag für die Spalteneigenschaften wechseln. Dort können Sie die Identität auf "Ja" setzen. Dort kann auch der Startwert für Autoincrement geändert werden. Hoffe ich konnte helfen;)

6
M.Schrecker

Ich hatte dieses Problem, bei dem ich bereits die Tabelle erstellt hatte und sie nicht ändern konnte, ohne die Tabelle fallen zu lassen. Ich tat also Folgendes: (Ich bin nicht sicher, wann sie implementiert wurde dies hatte es aber in SQL 2016)

Klicken Sie mit der rechten Maustaste auf die Tabelle im Objekt-Explorer:

Script Table as > DROP And CREATE To > New Query Editor Window

Nehmen Sie dann die Bearbeitung des von Josien genannten Drehbuchs vor. Scrolle nach unten, wo sich der CREATE TABLE befindet, finde deinen Primärschlüssel und füge IDENTITY(1,1) an das Ende vor dem Komma an. Skript ausführen.

Das DROP- und CREATE-Skript war auch für mich hilfreich, da dieses Problem (das vom generierten Skript behandelt wird.)

0
cheriejw