sql >> Databasteknik >  >> RDS >> Sqlserver

Returnera det ursprungliga fröet av en identitetskolumn i SQL Server

I SQL Server kan du använda T-SQL IDENT_SEED() funktion för att returnera det ursprungliga fröet för en identitetskolumn. Detta är det ursprungliga startvärdet som angavs när identitetskolumnen skapades.

Syntax

Syntaxen ser ut så här:

IDENT_SEED ( 'table_or_view' )

tabell_eller_vy argument är ett uttryck som specificerar tabellen eller vyn för att leta efter ett identitetsfrövärde.

Exempel 1 – Grundläggande användning

Här är ett grundläggande kodexempel.

SELECT IDENT_SEED('Pets') AS Result;

Resultat:

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

I det här fallet är identitetsfrövärdet 1.

Här är en annan fråga som kontrollerar fler tabeller.

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

Resultat:

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

Var och en av dessa tabeller skapades med olika fröidentitetsvärden.

Exempel 2 – Inklusive schemat

Du kan också inkludera schemat i argumentet.

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

Resultat:

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

Exempel 3 – Kontrollera alla tabeller i databasen

Här är ett exempel på hur du kontrollerar alla tabeller i databasen för deras identitetsfrövärde.

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ärdet

Returvärdet för IDENT_SEED() är numeric(@@MAXPRECISION,0)) . Det betyder att det är en numerisk datatyp med en fast precision och skala.

Precisionen beror på servern. @@MAXPRECISION argument returnerar nivån som används av decimala och numeriska datatyper som för närvarande är inställda på servern. Precisionen anger det maximala totala antalet decimalsiffror (den inkluderar de till vänster och höger om decimaltecknet).

Det andra argumentet anger en skala på 0 , vilket betyder att det inte finns några decimalsiffror till höger om decimalen.

Du kan köra följande fråga för att hitta den precisionsnivå som för närvarande är inställd på din server:

SELECT @@MAX_PRECISION AS [Max Precision];

Här är resultatet på mitt system:

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

Skapa en identitetskolumn

Du kan skapa en identitetskolumn genom att använda IDENTITY() egenskap i din CREATE TABLE eller ALTER TABLE påstående.

Ett annat sätt att skapa en identitetskolumn är IDENTITY() fungera. Detta gör att du kan skapa en identitetskolumn när du använder en SELECT INTO uttalande för att överföra data från en källa till en annan.


  1. Hur man formaterar siffror som valuta i MySQL

  2. Oracle trigger fel ORA-04091

  3. Ta med ditt eget moln tillgängligt för DigitalOcean

  4. Naturlig sort som stöder stora siffror