584 Stimmen

Automatisches Erhöhen des Primärschlüssels in SQL Server Management Studio 2012

Wie kann ich auto increment その primary key in einem SQL Server Datenbanktabelle? Ich habe mich im Forum umgesehen, aber ich kann nicht erkennen, wie man das macht.

Ich habe mir die Eigenschaften angesehen, kann aber keine Option finden. Ich habe eine Antwort gesehen, in der Sie zu den Identity Spezifikationseigenschaft und setzen Sie sie auf ja und setzen Sie die Identity increment a 1 aber dieser Abschnitt ist ausgegraut und ich kann die Einstellungen nicht ändern. keine a .

Es muss eine einfache Möglichkeit geben, dies zu tun, aber ich kann sie nicht finden.

11voto

Techie Joe Punkte 847

Vielleicht übersehe ich etwas, aber warum funktioniert das nicht mit dem SEQUENCE-Objekt? Ist das nicht das, wonach Sie suchen?

Exemple :

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

Wenn Sie die Squence in einem INSERT-Befehl referenzieren, verwenden Sie einfach:

NEXT VALUE FOR blah.blahsequence

Weitere Informationen und Optionen für SEQUENCE

7voto

M.Schrecker Punkte 71

Wenn Sie Datentyp: int verwenden, können Sie die Zeile auswählen, die automatisch ergänzt werden soll, und zum Tag Spalteneigenschaften gehen. Dort können Sie die Identität auf 'ja' setzen. Der Startwert für die Autoinkrementierung kann dort ebenfalls bearbeitet werden. Ich hoffe, ich konnte helfen ;)

4voto

cheriejw Punkte 354

Ich hatte das Problem, dass ich bereits die Tabelle erstellt und konnte es nicht ändern, ohne die Tabelle zu löschen, also tat ich Folgendes: (Ich bin mir nicht sicher, wann dies implementiert wurde, aber in SQL 2016 war es möglich)

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

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

Führen Sie dann die von Josien erwähnte Bearbeitung des Skripts durch; scrollen Sie bis zum Ende, wo die CREATE TABLE ist, suchen Sie Ihren Primärschlüssel und fügen Sie IDENTITY(1,1) an das Ende vor dem Komma. Skript ausführen.

Das DROP- und CREATE-Skript war für mich auch aus folgenden Gründen hilfreich diese Ausgabe. (Was das generierte Skript übernimmt.)

2voto

Sie können das Schlüsselwort IDENTITY als Datentyp für die Spalte zusammen mit PRIMARY KEY Einschränkung beim Erstellen der Tabelle.
ex:

StudentNumber IDENTITY(1,1) PRIMARY KEY

Hier bedeutet die erste "1" den Startwert und die zweite "1" den inkrementellen Wert.

1voto

Softec Punkte 987

Wenn die Tabelle bereits gefüllt ist, ist es nicht möglich, eine Spalte in eine IDENTITY-Spalte zu ändern oder sie in eine Nicht-IDENTITY-Spalte zu konvertieren. Sie müssen alle Daten exportieren, dann können Sie den Spaltentyp in IDENTITY oder umgekehrt ändern und dann die Daten wieder importieren. Ich weiß, dass dies ein mühsamer Prozess ist, aber ich glaube, dass es keine Alternative gibt, außer der Verwendung von Sequenzen, wie in diesem Beitrag erwähnt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X