SQL Identity Insert

SQL Identity Insert
SQL Server gir oss en identitetsklausul som lar deg lage serielle eller automatisk-increment-kolonner. Hvis en kolonne er satt som en identitetskolonne, genereres verdiene automatisk når nye poster legges til i tabellen.

Dette gir deg muligheten til å ha en unik identifikator for hver kolonne uten manuell databaseinspeksjon.

SQL Server -identitet

I SQL Server kan du opprette en identitetskolonne som vist:

Lag tabell tabell_navn (
kolonne_name int Identity
);

Den spesifiserte kolonneverdien ovenfor genereres automatisk når du legger til en ny post.

Tenk på det enkle eksemplet som er vist nedenfor:

Lag tabellbrukere (
id int identitet,
Navn varchar (255)
);

Under normale omstendigheter trenger vi ikke å spesifisere verdien av en identitetskolonne under datainnsats. Som nevnt er verdien automatisk generert for hver postinnsats som vist:

Sett inn brukere (navn) verdier ('Dorothy Michelle');

Ovennevnte skal sette opp posten i tabellen med en unik verdi for ID -kolonnen. For eksempel:

Legg merke til at ID -kolonnen inneholder en verdi selv om vi ikke spesifiserte en? Det er kraften i identitetskolonner.

SQL Server Tillat identitetsinnsats

Men hva hvis du prøver å legge til verdien av en identitetskolonne manuelt? For eksempel:

Sett inn brukere (ID, Navn) verdier (2, 'Jeff Arty');

Ovennevnte spørring vil returnere en feil som vist:

SQL Server forhindrer deg i å eksplisitt legge til verdier til en identitetsinnsats.

Vi kan løse dette ved å aktivere identitetsinnsatsfunksjonen i SQL Server.

Syntaksen for denne kommandoen er som vist:

Sett identitet_insert tabell_navn på

For å aktivere identitetsinnsats på brukernes tabell, kan vi kjøre:

Angi identitet_insert brukere på;

For å deaktivere identitetsinnsats på en bestemt tabell, sett verdien til AV.

SQL Server Reseed Identity Column

Hvis du sletter en post fra tabellen, blir identitetens kolonneverdi ikke brukt på nytt. Dette kan føre til inkonsekvens og fragmentering i databasen.

Du kan synkronisere identitetskolonnen ved å resedere som vist i kommandoen nedenfor:

DBCC Checkident (Table_name, Reseed, 1)

Ovennevnte spørring skal omutstyr identitetskolonnen i den spesifiserte tabellen fra indeks 1.

Konklusjon

I denne artikkelen utforsket vi identitetskolonnen i SQL -serveren og hvordan du aktiverer eller deaktiverer den i en tabell.

Jeg håper du syntes dette var nyttig!