Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12402|Răspunde: 3

[Sursă] Actualizează metoda de operare a coloanei ID auto-crescătoare din baza de date SQL Server

[Copiază linkul]
Postat pe 23.08.2018 12:20:44 | | | |
În dezvoltarea zilnică a SQL Server, coloana de identitate a tipului Identitate este adesea folosită ca număr auto-crescător al unei structuri de tabel. De exemplu, numărul articolului, numărul de serie al registrului etc. Referințele la coloane identificate care cresc singure facilitează foarte mult dezvoltarea programelor de baze de date, dar uneori acest tip de câmp încăpățânat poate cauza și unele probleme.

1. Modificați valorile câmpului din coloana de identificare:

Uneori, pentru a implementa o funcție, este necesară modificarea valorii unui câmp de tip Identitate auto-creștere, dar această operație nu este permisă implicit din cauza tipului coloanei de identitate. De exemplu, dacă se adaugă 5 date în mod normal în baza de date și 2 sunt șterse în acest moment, atunci dacă datele sunt adăugate din nou, coloana de identificare auto-crescătoare va primi automat o valoare de 6, dar dacă doriți să atribuiți o valoare de 3 la inserarea datelor, acest lucru nu este permis implicit. Dacă vrei să schimbi valoarea acestui câmp, poți controla complet inserarea valorii câmpului de identificare, încă există metode, haha.

PUNE IDENTITY_INSERT /[MASĂ/] [ON| OPRIT]
Folosind afirmația de mai sus, poți controla cu ușurință dacă o coloană de identificator care crește singură într-un tabel va crește automat, adică dacă ai voie să specifici manual valoarea câmpului coloanei de identificator atunci când inserezi o înregistrare. Dacă este specificat ca on, poți specifica valoarea câmpului de coloană de identificare la inserare, ceea ce nu crește automat valoarea atribuită. Desigur, dacă îl folosești, trebuie să folosești această instrucțiune pentru a opri comutatorul la starea implicită oprită, altfel câmpul nu va crește automat valoarea atribuită când introduci datele data viitoare.

2. Resetează valoarea câmpului coloanei de identificare:

Când o parte din înregistrarea de date este ștearsă, iar noua înregistrare de date este adăugată ulterior, valoarea coloanei de identificare va avea un interval mare de inactivitate, ceea ce pare foarte neplăcut. Chiar dacă ștergi toate înregistrările din tabel, valoarea coloanei de identitate va continua să crească automat și să crească la nesfârșit, în loc să crească de la zero. Valoarea sămânței câmpului care se autodezvoltă poate fi resetată folosind următoarea afirmație:

DBCC CHECKIDENT(TABLE, [RESEED| NORESEED], [1])
Afirmația de mai sus va forța resetarea valorii seed a tabelului specificat la 1. Totuși, dacă nu vrei să resetezi seed-ul la 1, poți înlocui al treilea parametru cu valoarea seed pe care vrei să o folosești. Dacă vrei să știi seed-ul curent în loc să resetezi seed-ul identificat, trebuie să folosești NORESEED în loc să setezi al treilea parametru.




Precedent:Coloane de creștere automată SQL Server 2012 cu probleme de salt de valoare
Următor:Windows nu reușește să pornească serviciul Redis, eroarea 1067: Procesul se termină neașteptat.
 Proprietarul| Postat pe 23.08.2018 12:57:08 |
1. Când toate datele din tabel sunt șterse, acestea vor crește automat la zero. ( tabelul scurtat Nume-tabel )

2. Nu șterge datele tabelului, resetează direct valoarea creșterii automate. ( DBCC CHECKIDENT('TableName', RESEED, 0)
 Proprietarul| Postat pe 23.08.2018 13:01:32 |
 Proprietarul| Postat pe 13.02.2019 09:59:15 |
Vizualizați valorile curente ale coloanelor auto-incrementante într-un tabel:
    DBCC CHECKIDENT (TableName)

Modificați valoarea curentă a unei coloane auto-incrementante într-un tabel:
    DBCC CHECKIDENT (TableName, RESEED, value)
    RESEED nu este un nume de coloană, este scris într-un mod fix.


De exemplu, dacă vreau să schimb valoarea curentă a coloanei auto-incrementante din tabelul Diviziei la 30, pot folosi următoarea comandă
DBCC CHECKIDENT (Divizie, RESEED, 30)
Apoi folosește
DBCC CHECKIDENT (Divizie)
Poți vedea că valoarea actuală este 30
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com