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.
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
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
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.
Sie müssen den Abschnitt Identität erweitern, um Increment und Seed verfügbar zu machen.
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
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.
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.
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
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;)
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.)