Hvordan bruke SQL Server Identity Insert

Hvordan bruke SQL Server Identity Insert

En identitetskolonne i SQL Server refererer til en kolonne som auto-genererer en unik numerisk verdi for hver post som er satt inn. En identitetskolonne er veldig nyttig som en primærnøkkel da hver verdi er unik for hver rad.

I denne guiden vil vi forstå hvordan vi bruker identitetsegenskapen i SQL -serveren og hvordan vi manuelt kan sette inn verdier i en identitetskolonne.

SQL Server -identitet

Identitetsegenskapen i en kolonne bestemmes av den første frøverdien og økningen heltall. Syntaksen er som vist:

identitet (frø, økning);

  1. Frøparameteren definerer verdien av den første posten som er satt inn i tabellen.
  2. Økningen bestemmer hvilken verdi fra forrige rad legges til.

Hvis frø- og økningsparametrene ikke er definert, er SQL Server standardverdier til henholdsvis 1, 1.

Eksemplet spørringsuttalelser illustrerer hvordan du bruker SQL Server Identity -egenskapen:

createTatabasetemplory_db;
Usetemplory_db;
CreateTableSample_table (
IdIntNotNullIdentity (1,1) Primærnøkkel,
NameVarchar (50),
);
Sett inn på_table (navn)
Verdier ('Abigail Henderson'),
('Peter Miller'),
('Harris Gonzales'),
('Anne Jenkins'),
('Katherine Patterson');
Velg * FromSample_Table;

Vi burde ha et bord som vist:

Legg merke til at ID -kolonnen starter fra en verdi på 1 og trinn neste rad med 1, som definert av identitetsegenskapen.

SQL Server Indentity_Insert

Selv om identitetsegenskapen brukes til å definere en automatisk generat funksjon, kan det være lurt å manuelt redigere verdien av en identitetskolonne.

Det er her Identity_Insert -kommandoen spiller inn.

SQL Server Aktiver Identity_Insert

Som standard vil SQL Server forhindre at du manuelt redigerer verdiene til en identitetskolonne. For å bruke den, må du aktivere det på målbordet ditt.

Hvis du for eksempel prøver å redigere verdiene manuelt i ID -kolonnen fra eksempeltabellen ovenfor, vil du få en feil som vist:

INSERTINTOSEMPLE_TABLE (ID) verdier (7);

Bruk følgende kommandosyntaks for å slå identitet_insert -funksjonen av eller på:

setidentity_inserttable_nameon/off;

For å slå identitet_insert på for eksempelet som er opprettet ovenfor, kan vi for eksempel gjøre:

setidentity_insertsample_tableon;

Når du er aktivert, kan du sette inn verdier i identitetskolonnen:

INSERTINTOSEMPLE_TABLE (ID) verdier (7);
[/c] C
Spørringen skal returnere suksess:
[CC bredde = "100%" høyde = "100%" rømte = "true" tema = "blackboard" nowrap = "0"]
(1 rad berørt)

HINT: Du kan bare angi identitet_insert på en enkelt bord per økt. Hvis du prøver å aktivere identitetsinnsats på en annen tabell i samme økt, vil SQL -serveren returnere en feil som vist:

Konklusjon

SQL Server Identity-egenskapen tillater å definere en kolonne som automatisk genererer numeriske verdier basert på frø- og økningsverdiene. Som diskutert i denne opplæringen, kan du imidlertid bruke identitetsinnsatsen for å manuelt redigere verdiene til en identitetskolonne. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og informasjon.