V SQL Server můžete použít T-SQL IDENT_INCR()
funkce, která vrátí hodnotu přírůstku sloupce identity. Toto je hodnota přírůstku zadaná při vytváření sloupce identity.
Syntaxe
Syntaxe vypadá takto:
IDENT_INCR ( 'table_or_view' )
table_or_view argument je výraz, který určuje tabulku nebo pohled pro kontrolu platné hodnoty přírůstku identity.
Příklad 1 – Základní použití
Zde je základní příklad kódu.
SELECT IDENT_INCR('Pets') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
V tomto případě je hodnota přírůstku identity 1.
Zde je další dotaz, který kontroluje více tabulek.
SELECT IDENT_INCR('Pets') AS Pets, IDENT_INCR('BestFriends') AS BestFriends, IDENT_INCR('Cities') AS Cities;
Výsledek:
+--------+---------------+----------+ | Pets | BestFriends | Cities | |--------+---------------+----------| | 1 | 10 | 10 | +--------+---------------+----------+
Příklad 2 – Včetně schématu
Do argumentu můžete také zahrnout schéma.
SELECT IDENT_INCR('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_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR FROM INFORMATION_SCHEMA.TABLES WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
Výsledek:
+----------------+----------------+--------------+ | TABLE_SCHEMA | TABLE_NAME | IDENT_INCR | |----------------+----------------+--------------| | dbo | ConstraintTest | 1 | | dbo | Event | 1 | | dbo | Scoreboard | 1 | | dbo | Pets | 1 | | dbo | BestFriends | 10 | | dbo | Cities | 10 | | dbo | Colors | 1 | +----------------+----------------+--------------+
O návratové hodnotě
Vrácená hodnota pro IDENT_INCR()
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.