IDENTITY (Funkce) (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSklad v Microsoft FabricSQL databáze v Microsoft Fabric

Používejte IDENTITY pouze ve příkazu SELECT s klauzulí INTO table pro přidání sloupce identity do nové tabulky. Ačkoliv je funkce podobná, není stejná IDENTITY jako vlastnost IDENTITY , kterou používáte s CREATE TABLE a ALTER TABLE.

Poznámka:

Pro vytvoření automaticky zvyšujícího se čísla, které můžete použít ve více tabulkách nebo volat z aplikací bez odkazování na jakoukoli tabulku, viz Sekvenční čísla.

Transact-SQL konvence syntaxe

Syntaxe

Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance, SQL database in Fabric:

IDENTITY ( data_type [ , seed , increment ] ) AS column_name  

Syntax pro Fabric Data Warehouse:

IDENTITY ( data_type ) AS column_name  

Argumenty

data_type

Datový typ sloupce identity. Platné datové typy pro identitní sloupec jsou jakékoliv datové typy v kategorii celočíselných datových typů, kromě bitového datového typu nebo desetinného datového typu.

semeno

Celočíselná hodnota přiřazená k prvnímu řádku tabulky. Každý následující řádek získá další hodnotu identity, což je poslední IDENTITY hodnota plus hodnota přírůstku . Pokud nespecifikujete seed nebo inkrement, oba jsou výchozí na 1.

přírůstek

Celočíselná hodnota se přidává k počáteční hodnotě pro následující řádky v tabulce.

column_name

Název sloupce, který se má vložit do nové tabulky.

Návratové typy

Vrátí stejnou hodnotu jako data_type.

Poznámky

Protože tato funkce vytváří sloupec v tabulce, musíte zadat název sloupce v seznamu výběru jedním z následujících způsobů:

--(1)  
SELECT IDENTITY(int, 1,1) AS ID_Num  
INTO NewTable  
FROM OldTable;  

--(2)  
SELECT ID_Num = IDENTITY(int, 1, 1)  
INTO NewTable  
FROM OldTable;  

Podpora v Microsoft Fabric Data Warehouse

V Fabric Data Warehouse nemůžete zadat seedincrement hodnoty, protože systém tyto hodnoty automaticky spravuje a poskytuje unikátní celá čísla. Pro definici sloupce ve výroku CREATE TABLE stačí použít BIGINT IDENTITY. Pro více informací viz CREATE TABLE (Transact-SQL) IDENTITY (Vlastnost) a IDENTITY v Fabric Data Warehouse.

Příklady

Následující příklad vkládá všechny řádky z tabulky Contact v databázi AdventureWorks2025 do nové tabulky s názvem NewContact. Funkce IDENTITY nastaví identifikační čísla tak, aby začínala na 100 místo 1 v tabulce NewContact .

USE AdventureWorks2022;  
GO  
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL  
    DROP TABLE Person.NewContact;  
GO  
ALTER DATABASE AdventureWorks2022 SET RECOVERY BULK_LOGGED;  
GO  
SELECT  IDENTITY(smallint, 100, 1) AS ContactNum,  
        FirstName AS First,  
        LastName AS Last  
INTO Person.NewContact  
FROM Person.Person;  
GO  
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  
GO  
SELECT ContactNum, First, Last FROM Person.NewContact;  
GO