sql >> Databáze >  >> RDS >> Sqlserver

Vraťte původní počáteční hodnotu sloupce identity na serveru SQL Server

V SQL Server můžete použít T-SQL IDENT_SEED() funkce, která vrátí původní počáteční hodnotu sloupce identity. Toto je původní počáteční hodnota zadaná při vytváření sloupce identity.

Syntaxe

Syntaxe vypadá takto:

IDENT_SEED ( 'table_or_view' )

table_or_view argument je výraz, který určuje tabulku nebo pohled, který má zkontrolovat hodnotu počáteční hodnoty identity.

Příklad 1 – Základní použití

Zde je základní příklad kódu.

SELECT IDENT_SEED('Pets') AS Result;

Výsledek:

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

V tomto případě je počáteční hodnota identity 1.

Zde je další dotaz, který kontroluje více tabulek.

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

Výsledek:

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

Každá z těchto tabulek byla vytvořena s jinou hodnotou identity zdroje.

Příklad 2 – Včetně schématu

Do argumentu můžete také zahrnout schéma.

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

Výsledek:

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

Příklad 3 – Kontrola všech tabulek v databázi

Zde je příklad kontroly všech tabulek v databázi na jejich počáteční hodnotu identity.

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;

Výsledek:

+----------------+----------------+--------------+
| 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            |
+----------------+----------------+--------------+

O návratové hodnotě

Vrácená hodnota pro IDENT_SEED() je numeric(@@MAXPRECISION,0)) . To znamená, že se jedná o číselný datový typ s pevnou přesností a měřítkem.

Přesnost závisí na serveru. @@MAXPRECISION argument vrací úroveň používanou desítkovými a číselnými datovými typy, jak je aktuálně nastavena na serveru. Přesnost určuje maximální celkový počet desetinných míst (zahrnuje ty na levé a pravé straně desetinné čárky).

Druhý argument určuje měřítko 0 , což znamená, že napravo od desetinného místa nejsou žádné desetinné číslice.

Chcete-li zjistit úroveň přesnosti aktuálně nastavenou na vašem serveru, můžete spustit následující dotaz:

SELECT @@MAX_PRECISION AS [Max Precision];

Zde je výsledek v mém systému:

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

Vytvoření sloupce identity

Sloupec identity můžete vytvořit pomocí IDENTITY() vlastnost ve vaší CREATE TABLE nebo ALTER TABLE prohlášení.

Dalším způsobem, jak vytvořit sloupec identity, je IDENTITY() funkce. To vám umožní vytvořit sloupec identity při použití SELECT INTO k přenosu dat z jednoho zdroje do druhého.


  1. Top 5 časově náročných SQL dotazů v Oracle

  2. Předejte proměnnou do spouštěče

  3. Jak zkontrolovat, zda kurzor vrací nějaké záznamy v oracle?

  4. Rails 3.1 - Pushing to Heroku - Chyby při instalaci postgres adaptéru?