Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12402|Antwort: 3

[Quelle] Aktualisierung der Betriebsmethode der sich selbst wachsenden ID-Spalte in der SQL-Server-Datenbank

[Link kopieren]
Veröffentlicht am 23.08.2018 12:20:44 | | | |
In der täglichen Entwicklung von SQL Servern wird die Identitätsspalte des Identitätstyps oft als selbstwachsende Zahl einer Tabellenstruktur verwendet. Zum Beispiel Artikelnummer, Seriennummer des Datensatzes usw. Verweise auf sich selbst wachsende identifizierte Spalten erleichtern die Entwicklung von Datenbankprogrammen erheblich, aber manchmal kann auch dieser hartnäckige Feldtyp Probleme verursachen.

1. Verändern Sie die Feldwerte der Identifikationsspalte:

Manchmal ist es notwendig, um eine Funktion zu implementieren, den Wert eines Feldes des Typs Identität selbstwachsend zu ändern, aber diese Operation ist aufgrund der Art der Identitätsspalte standardmäßig nicht erlaubt. Wenn zum Beispiel 5 Datenstücke normal in der Datenbank hinzugefügt werden und 2 zu diesem Zeitpunkt gelöscht werden, wird bei erneutem Hinzufügen der Identifikationsspalte für die selbstwachsende Identifikation automatisch der Wert 6 zugewiesen, aber wenn Sie beim Einfügen der Daten einen Wert 3 vergeben möchten, ist dies standardmäßig nicht erlaubt. Wenn du den Wert dieses Feldes ändern willst, kannst du die Einfügung des Identifikationsfeldes komplett kontrollieren, es gibt immer noch Methoden, haha.

SETZE IDENTITY_INSERT /[TISCH/] [AN| [OFF]
Mit der obigen Anweisung können Sie leicht steuern, ob eine sich selbst wachsende Kennungsspalte in einer Tabelle automatisch wächst, also ob Sie beim Einfügen eines Datensatzes manuell den Wert des Identifikator-Spaltenfeldes angeben dürfen. Wenn als auf angegeben ist, können Sie beim Einfügen den Wert des identifizierenden Spaltenfeldes angeben, was den zugewiesenen Wert nicht automatisch vergrößert. Natürlich musst du, wenn du es verbrauchst, diese Anweisung verwenden, um den Schalter in den Standardzustand auszuschalten, sonst erhöht das Feld den zugewiesenen Wert beim nächsten Mal nicht automatisch.

2. Setzen Sie den Feldwert der Identifikationsspalte zurück:

Wenn ein Teil des Datensatzes gelöscht und der neue Datensatz später hinzugefügt wird, hat der Wert der Identifikationsspalte ein großes Leerlaufintervall, was sehr unangenehm wirkt. Selbst wenn Sie alle Datensätze in der Tabelle löschen, steigt der Wert der Identitätsspalte automatisch weiter und steigt endlos an, anstatt von Grund auf neu zu wachsen. Der Saatwert des selbstwachsenden Feldes kann mit folgender Aussage zurückgesetzt werden:

DBCC CHECKIDENT(TABELLE, [RESEED| NORESEED], [1])
Die obige Anweisung erfordert, dass der Startwert der angegebenen Tabelle auf 1 zurückgesetzt wird. Wenn du den Seed jedoch nicht auf 1 zurücksetzen möchtest, kannst du den dritten Parameter durch den gewünschten Seed-Wert ersetzen. Wenn du den aktuellen Seed wissen willst, anstatt den identifizierten Seed zurückzusetzen, musst du NORESEED verwenden, anstatt den dritten Parameter zu setzen.




Vorhergehend:SQL Server 2012 lässt Spalten mit Value Jump-Problemen automatisch wachsen
Nächster:Windows startet den Redis-Dienst nicht, Fehler 1067: Prozess beendet unerwartet.
 Vermieter| Veröffentlicht am 23.08.2018 12:57:08 |
1. Wenn alle Daten in der Tabelle gelöscht wurden, werden sie automatisch auf null erhöht. ( Tabellenname abschneiden )

2. Löschen Sie die Daten der Tabelle nicht, setzen Sie den Wert des automatischen Wachstums direkt zurück. ( DBCC CHECKIDENT('TableName', RESEED, 0)
 Vermieter| Veröffentlicht am 23.08.2018 13:01:32 |
 Vermieter| Veröffentlicht am 13.02.2019 09:59:15 |
Sehen Sie sich die aktuellen Werte der selbstinkrementierenden Spalten in einer Tabelle an:
    DBCC CHECKIDENT (TableName)

Ändern Sie den aktuellen Wert einer sich selbst inkrementierenden Spalte in einer Tabelle:
    DBCC CHECKIDENT (TableName, RESEED, Value)
    RESEED ist kein Spaltenname, sondern wird auf feste Weise geschrieben.


Wenn ich zum Beispiel den aktuellen Wert der selbststeigernden Spalte in der Divisionstabelle auf 30 ändern möchte, kann ich folgenden Befehl verwenden
DBCC CHECKIDENT (Division, RESEED, 30)
Dann verwenden Sie
DBCC CHECKIDENT (Division)
Du siehst, dass der aktuelle Wert 30 beträgt
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com