Bij dagelijkse SQL Server-ontwikkeling wordt de identiteitskolom van het type Identiteit vaak gebruikt als het zelfgroeiende aantal van een tabelstructuur. Bijvoorbeeld artikelnummer, serienummer van het record, enzovoort. Verwijzingen naar zelfgroeiende geïdentificeerde kolommen vergemakkelijken de ontwikkeling van databaseprogramma's aanzienlijk, maar soms kan dit hardnekkige veldtype ook problemen veroorzaken.
1. Pas de veldwaarden van de identificatiekolom aan:
Soms is het om een functie te implementeren nodig om de waarde van een veld van het type Identity self-growing aan te passen, maar deze bewerking is standaard niet toegestaan vanwege het type identiteitskolom. Als er bijvoorbeeld 5 gegevens normaal in de database worden toegevoegd en er worden er 2 verwijderd, dan krijgt de zelfgroeiende identificatiekolom automatisch een waarde 6 toegewezen als de data opnieuw wordt toegevoegd, maar als je bij het invoegen van data een waarde 3 wilt toewijzen, is dat standaard niet toegestaan. Als je de waarde van dit veld wilt veranderen, kun je de invoeging van de waarde van het identificatieveld volledig controleren, er zijn nog steeds methoden, haha.
ZET IDENTITY_INSERT /[TAFEL/] [OP| UIT] Met bovenstaande instructie kun je eenvoudig bepalen of een zelfgroeiende identifierkolom in een tabel automatisch groeit, dat wil zeggen of je handmatig de waarde van het identifierkolomveld mag specificeren bij het invoegen van een record. Als aangegeven als aan, kun je bij het invoegen de waarde van het identificerende kolomveld opgeven, wat de toegewezen waarde niet automatisch laat groeien. Natuurlijk, als je het opgebruikt, moet je deze instructie gebruiken om de schakelaar naar de standaardstatus uit te schakelen, anders zal het veld de toegewezen waarde niet automatisch verhogen bij het volgende invoegen van gegevens.
2. Reset de veldwaarde van de identificatiekolom:
Wanneer een deel van het gegevensrecord wordt verwijderd en het nieuwe gegevensrecord later wordt toegevoegd, zal de waarde van de identificatiekolom een groot idle-interval hebben, wat er erg onaangenaam uitziet. Zelfs als je alle records in de tabel verwijdert, zal de waarde van de identiteitskolom automatisch blijven stijgen en eindeloos toenemen, in plaats van vanaf nul te groeien. De zaadwaarde van het zelfgroeiende veld kan worden gereset met de volgende uitspraak:
DBCC CHECKIDENT(TABEL, [RESEED| NORESEED], [1]) De bovenstaande instructie dwingt de seedwaarde van de opgegeven tabel terug te zetten naar 1. Als je de seed echter niet naar 1 wilt zetten, kun je de derde parameter vervangen door de seedwaarde die je wilt gebruiken. Als je de huidige seed wilt weten in plaats van de geïdentificeerde seed te resetten, moet je NORESEED gebruiken in plaats van de derde parameter in te stellen. |