Sdílet prostřednictvím


IDENTITY (funkce) (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Používá se pouze v příkazu SELECT s klauzulí tabulky INTO k vložení sloupce identity do nové tabulky. I když je to podobné, funkce IDENTITY není 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
Je 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
Je celočíselná hodnota, která se má přiřadit 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
Je celočíselná hodnota, která se má přidat k počáteční hodnotě po sobě jdoucích řádků v tabulce.

column_name
Je název sloupce, který se má vložit 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;  

Příklady

Následující příklad vloží všechny řádky z tabulky z Contact databáze AdventureWorks2022 do nové tabulky s názvem NewContact. Funkce IDENTITY se používá ke spuštění identifikačních čísel na 100 místo 1 v NewContact tabulce.

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  

Viz také

VYTVOŘIT TABULKU (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (vlastnost) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)