Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12402|Antwoord: 3

[Bron] Werk de bedieningsmethode van de zelfgroeiende ID-kolom bij in de SQL Server-database

[Link kopiëren]
Geplaatst op 23-08-2018 12:20:44 | | | |
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.




Vorig:SQL Server 2012 auto-groei kolommen met waardesprongproblemen
Volgend:Windows start de Redis-service niet op, fout 1067: Proces beëindigt onverwacht.
 Huisbaas| Geplaatst op 23-08-2018 12:57:08 |
1. Wanneer alle gegevens in de tabel zijn verwijderd, wordt deze automatisch verhoogd naar nul. ( tabelnaam afsnijden )

2. Verwijder de gegevens van de tabel niet, reset direct de waarde van auto-groei. ( DBCC CHECKIDENT('TableName', RESEED, 0)
 Huisbaas| Geplaatst op 23-08-2018 13:01:32 |
 Huisbaas| Geplaatst op 13-02-2019 09:59:15 |
Bekijk de huidige waarden van de zelf-incrementerende kolommen in een tabel:
    DBCC CHECKIDENT (TableName)

Wijzig de huidige waarde van een zelfverhogende kolom in een tabel:
    DBCC CHECKIDENT (TableName, RESEED, value)
    RESEED is geen kolomnaam, het wordt op een vaste manier geschreven.


Als ik bijvoorbeeld de huidige waarde van de zelfverhogende kolom in de Divisietabel naar 30 wil veranderen, kan ik het volgende commando gebruiken
DBCC CHECKIDENT (Divisie, HERPLAATSING, 30)
Gebruik dan
DBCC CHECKIDENT (Divisie)
Je kunt zien dat de huidige waarde 30 is
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com