sql >> Databasteknik >  >> RDS >> Sqlserver

Sekvens vs identitet

Jag tror att du hittar ditt svar här

Genom att använda identitetsattributet för en kolumn kan du enkelt generera automatiskt inkrementerande tal (som lika ofta används som en primärnyckel). Med Sequence kommer det att vara ett annat objekt som du kan bifoga till en möjlig kolumn medan du infogar. Till skillnad från identitet kommer nästa nummer för kolumnvärdet att hämtas från minnet snarare än från disken – detta gör Sequence betydligt snabbare än Identity. Vi kommer att se detta i kommande exempel.

Och här:

Sekvenser:Sekvenser har efterfrågats av SQL Server-gemenskapen i flera år, och det ingår i den här utgåvan. Sekvens är ett användardefinierat objekt som genererar en sekvens av ett tal. Här är ett exempel som använder Sequence.

och här också:

Ett SQL Server-sekvensobjekt genererar talsekvens precis som en identitetskolumn i SQL-tabeller. Men fördelen med sekvensnummer är att sekvensnummerobjektet inte är begränsat med single sqltable.

och på msdn kan du också läsa mer om användning och varför vi behöver det (här):

En sekvens är ett användardefinierat schemabundet objekt som genererar en sekvens av numeriska värden enligt specifikationen med vilken sekvensen skapades. Sekvensen av numeriska värden genereras i en stigande eller fallande ordning med ett definierat intervall och kan cykla (upprepa) efter önskemål. Sekvenser, till skillnad från identitetskolumner, är inte associerade med tabeller. En applikation hänvisar till ett sekvensobjekt för att få dess nästa värde. Förhållandet mellan sekvenser och tabeller styrs av applikationen. Användarapplikationer kan referera till ett sekvensobjekt och koordinera värdenycklarna över flera rader och tabeller.

En sekvens skapas oberoende av tabellerna genom att använda CREATESEQUENCE-satsen. Alternativen gör att du kan styra inkrement, högsta och lägsta värden, startpunkt, automatisk omstart och caching för att förbättra prestandan. För information om alternativen, se SKAPA SEKVENS.

Till skillnad från identitetskolumnvärden, som genereras när rader infogas, kan en applikation erhålla nästa sekvensnummer innan raden infogas genom att anropa funktionen NÄSTA VÄRDE FÖR. Sekvensnumret tilldelas när NEXT VALUE FOR anropas även om numret aldrig har infogats i en tabell. Funktionen NÄSTA VÄRDE FÖR kan användas som standardvärde för en kolumn i en tabelldefinition. Använd sp_sequence_get_range för att få ett intervall med flera sekvensnummer samtidigt.

En sekvens kan definieras som vilken heltalsdatatyp som helst. Om datatypen inte är specificerad, är en sekvens som standard bigint.



  1. Produktrecension – Stellar Repair för MySQL

  2. Hur man installerar MySQL på macOS

  3. Exempel på PHP + MySQL-transaktioner

  4. Hur fixar man felaktiga strängvärdesfel?