Sdílet prostřednictvím


IDENTITY (funkce) (Transact-SQL)

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSklad v Microsoft FabricSQL databáze v Microsoft Fabric

IDENTITY se používá pouze ve příkazu SELECT s klauzulí INTO tabulky pro vložení sloupce identity do nové tabulky. Ačkoliv je funkce podobná, není to IDENTITY vlastnost IDENTITY , která se používá s CREATE TABLE a ALTER TABLE.

Poznámka:

Pokud chcete vytvořit automaticky inkrementující číslo, které lze použít ve více tabulkách nebo které lze volat z aplikací bez odkazování na libovolnou tabulku, podívejte se na pořadová čísla.

Transact-SQL konvence syntaxe

Syntaxe

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

Argumenty

data_type

Datový typ sloupce identity. Platné datové typy pro sloupec identity jsou všechny datové typy kategorie celočíselného datového typu, s výjimkou datového typu bit nebo desetinného datového typu.

semeno

Celočíselná hodnota, která má být přiřazena k prvnímu řádku tabulky. Každému dalšímu řádku se přiřadí další hodnota identity, která se rovná poslední hodnotě IDENTITY a vyšší hodnotě. Pokud není zadáno žádné počáteční ani přírůstkové , oba výchozí hodnoty jsou 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ý má být vložen do nové tabulky.

Návratové typy

Vrátí stejnou hodnotu jako data_type.

Poznámky

Vzhledem k tomu, že tato funkce vytvoří sloupec v tabulce, musí být název sloupce zadán v seznamu výběr 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;  

V Fabric Data Warehouse nelze specifikovat seed ani increment, protože tyto hodnoty jsou automaticky spravovány tak, aby poskytly unikátní celá čísla. BIGINT IDENTITY je vše, co je potřeba pro definici sloupce ve CREATE TABLE výroku. Pro více informací viz CREATE TABLE (Transact-SQL), IDENTITY (Property) a IDENTITY v Fabric Data Warehouse.

Příklady

Následující příklad vkládá všechny řádky z tabulky Contact z databáze AdventureWorks2025 do nové tabulky nazvané NewContact. Funkce IDENTITY se používá k tomu, aby identifikační čísla 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