Heim > Artikel > Computer-Tutorials > Wie implementiert man die automatische Nummerierung in SQL Server 2008?
Hinweis: Das Identitätsattribut kann nur für Spalten festgelegt werden, die keine Nullen zulassen und die Datentypen dezimal, int, numerisch, smallint, bigint oder tinyint haben. Darüber hinaus können Identitätseigenschaften nicht für Primärschlüsselspalten festgelegt werden.
Eins. Ändern Sie das Identitätsattribut der Spalte über SQL-Verwaltungstools
1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die Tabelle, die die Spalte enthält, deren Datentyp Sie ändern möchten, und klicken Sie dann auf Ändern. Die Tabelle wird im Tabellendesigner geöffnet.
2. Deaktivieren Sie das Kontrollkästchen „Nullen zulassen“ für die Spalte, die Sie ändern möchten.
3. Erweitern Sie auf der Registerkarte „Spalteneigenschaften“ die Eigenschaft „Identifikationsspezifikation“.
4. Klicken Sie auf die Rasterzelle der Untereigenschaft „Ja, Identität“ und wählen Sie „Ja“ aus der Dropdown-Liste.
5. Geben Sie einen Wert in die Zelle „Identifikations-Seed“ ein. Dieser Wert wird der ersten Zeile der Tabelle zugewiesen. Standardmäßig ist dieser Wert 1.
6. Geben Sie einen Wert in die Zelle „Identifikationsinkrement“ ein. Dieser Wert ist ein zeilenweises Inkrement basierend auf dem „Identifikations-Seed“. Standardmäßig ist die Schrittweite auf 1 eingestellt.
Zwei. Zu erstellende SQL-Anweisung
Geben Sie beim Erstellen einer Tabelle automatische Nummerierungsfelder an
TABELLE ERSTELLEN [dbo].[UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL, --Der Anfangswert und der Inkrementierungsschritt können hier angegeben werden
[Benutzername] [nchar](10) NOT NULL, )
Sie können eine Tabelle erstellen und die Eigenschaft „Identitätsspalte“ einer darin enthaltenen Spalte (z. B. „ID“) auf „Ja“ setzen und dann deren Startwert (Anfangswert) und Inkrement festlegen. Wenn Sie beispielsweise den Startwert auf 1 und das Inkrement auf 1 (Standardeinstellung) festlegen, lautet die generierte ID-Sequenz: 1, 2, 3, 4,…
Wenn die Anzahl der Datensätze nicht besonders groß ist (mehr als 10 Millionen), ist dieser Wert eindeutig, das heißt, die beiden sind nicht gleich.
Aber es wird ein Problem geben, wenn Sie beispielsweise 10 Datensätze nacheinander generieren:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Dann löschen Sie Datensatz Nr. 3, die verbleibenden Datensätze sind also:
1, 2, 4, 5, 6, 7, 8, 9, 10
Wenn Sie möchten, dass die Zahl ohne Unterbrechung in der Mitte schrittweise von 1 ansteigt, können Sie eine weitere nicht identifizierende Spalte festlegen, z. B. „Zahl“. Beim Hinzufügen neuer Datensätze können Sie die folgenden Methoden verwenden:
In der Abfrageanweisung können Sie die folgende Anweisung verwenden, um den Maximalwert der Zahlenspalte in der Tabelle auszuwählen: SELECT @number = MAX(number) FROM tablename
In Tabellenname(Zahl)-Werte(@Zahl+1) einfügen
------------------------
Das Obige ist eine Demonstration mit SQL-Anweisungen, es wird jedoch davon ausgegangen, dass Sie gespeicherte Prozeduren zum Betreiben der Datenbank verwenden. Wenn Sie die ASP-Sprache verwenden, können Sie dies wie folgt tun:
psql = „SELECT MAX(number) AS maxnumber FROM tablename“
rs.open psql,conn,3,3
maxnumber=rs("maxnumber")
Lesen Sie den maximalen Zahlenwert, addieren Sie dann 1 und verwenden Sie ihn dann in Ihrer Datenadditionsanweisung.
------------------------
Auf diese Weise können Sie die Nummer manuell generieren und dann das Programm beim Löschen des Datensatzes wie folgt schreiben:
' Gehen Sie davon aus, dass die zu löschende Datensatznummer @n
istTabellennamen löschen, wobei Nummer=@n
istAktualisieren Sie den Datensatz mit dem Namen Tabellenname und verringern Sie den Wert des Zahlenfelds um 1, aber aktualisieren Sie ihn nur, wenn die Zahl größer als der Wert des Parameters @n ist.
Danach können wir die Nummerierungsreihenfolge ändern, die Datensätze löschen und sie neu nummerieren. Ebenso kann ich Ihnen eine SQL-Anweisungsdemonstration zeigen, aber dieses Mal wird der Code mit ASP+SQL nicht mehr bereitgestellt. Bitte lesen Sie ihn selbst und verstehen Sie ihn.
Das obige ist der detaillierte Inhalt vonWie implementiert man die automatische Nummerierung in SQL Server 2008?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!