sql >> Database teknologi >  >> RDS >> Sqlserver

Returner det oprindelige frø af en identitetskolonne i SQL Server

I SQL Server kan du bruge T-SQL IDENT_SEED() funktion til at returnere det oprindelige frø af en identitetskolonne. Dette er den oprindelige startværdi, der blev angivet ved oprettelse af identitetskolonnen.

Syntaks

Syntaksen ser sådan ud:

IDENT_SEED ( 'table_or_view' )

table_or_view argument er et udtryk, der specificerer tabellen eller visningen, der skal kontrolleres for en identitetsfrøværdi.

Eksempel 1 – Grundlæggende brug

Her er et grundlæggende kodeeksempel.

SELECT IDENT_SEED('Pets') AS Result;

Resultat:

+----------+
| Result   |
|----------|
| 1        |
+----------+

I dette tilfælde er identitetens startværdi 1.

Her er en anden forespørgsel, der kontrollerer flere tabeller.

SELECT 
  IDENT_SEED('Pets') AS Pets,
  IDENT_SEED('BestFriends') AS BestFriends,
  IDENT_SEED('Cities') AS Cities;

Resultat:

+--------+---------------+----------+
| Pets   | BestFriends   | Cities   |
|--------+---------------+----------|
| 1      | 101           | 150      |
+--------+---------------+----------+

Hver af disse tabeller blev oprettet med en anden seed-identitetsværdi.

Eksempel 2 – Inklusive skemaet

Du kan også inkludere skemaet i argumentet.

SELECT IDENT_SEED('dbo.Pets') AS Result;

Resultat:

+----------+
| Result   |
|----------|
| 1        |
+----------+

Eksempel 3 – Tjek alle tabeller i databasen

Her er et eksempel på kontrol af alle tabeller i databasen for deres identitetsfrøværdi.

SELECT 
  TABLE_SCHEMA, 
  TABLE_NAME,   
  IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_SEED  
FROM INFORMATION_SCHEMA.TABLES  
WHERE IDENT_SEED(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;

Resultat:

+----------------+----------------+--------------+
| TABLE_SCHEMA   | TABLE_NAME     | IDENT_SEED   |
|----------------+----------------+--------------|
| dbo            | ConstraintTest | 1            |
| dbo            | Event          | 1            |
| dbo            | Scoreboard     | 1            |
| dbo            | Pets           | 1            |
| dbo            | BestFriends    | 101          |
| dbo            | Cities         | 150          |
| dbo            | Colors         | 1            |
+----------------+----------------+--------------+

Om returværdien

Returværdien for IDENT_SEED() er numeric(@@MAXPRECISION,0)) . Det betyder, at det er en numerisk datatype med en fast præcision og skala.

Præcisionen afhænger af serveren. @@MAXPRECISION argument returnerer det niveau, der bruges af decimale og numeriske datatyper som aktuelt indstillet på serveren. Præcisionen angiver det maksimale samlede antal decimalcifre (det inkluderer dem på venstre og højre side af decimaltegnet).

Det andet argument angiver en skala på 0 , hvilket betyder, at der ikke er nogen decimaler til højre for decimalen.

Du kan køre følgende forespørgsel for at finde det præcisionsniveau, der aktuelt er indstillet på din server:

SELECT @@MAX_PRECISION AS [Max Precision];

Her er resultatet på mit system:

+-----------------+
| Max Precision   |
|-----------------|
| 38              |
+-----------------+

Oprettelse af en identitetskolonne

Du kan oprette en identitetskolonne ved at bruge IDENTITY() ejendom i din CREATE TABLE eller ALTER TABLE udmelding.

En anden måde at oprette en identitetskolonne på er IDENTITY() fungere. Dette giver dig mulighed for at oprette en identitetskolonne, når du bruger en SELECT INTO sætning til at overføre data fra en kilde til en anden.


  1. Adgang til klassemodul og indpakningsklasser

  2. Webinar:Banking on Postgres – Finansielle ansøgningsovervejelser [Opfølgning]

  3. Hvordan UNION fungerer i PostgreSQL

  4. Hvordan udskriver du resultatet af en PostgreSQL-forespørgsel i CSV- eller TSV-format fra kommandolinjen?