IDENTITY (Funkció) (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsRaktár a Microsoft Fabric-benSQL adatbázis a Microsoft Fabric-ben

IDENTITY Csak SELECT egy mondatban, ahol egy INTO table klauzulával együtt használd, hogy egy identitásoszlopot adj hozzá egy új táblához. Bár hasonlóak, a IDENTITY függvény nem ugyanaz, mint az IDENTITY a tulajdonság, amit és CREATE TABLEALTER TABLEhasználsz.

Megjegyzés:

Ha automatikusan növelhető számot szeretnél létrehozni, amelyet több táblában is használhatsz vagy alkalmazásokból hívhatsz anélkül, hogy táblázatra hivatkoznál, lásd: Sorszámok.

Transact-SQL szintaxis konvenciók

Szemantika

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

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

Szintaxis a Fabric Data Warehouse számára:

IDENTITY ( data_type ) AS column_name  

Érvek

data_type

Az identitásoszlop adattípusa. Az identitásoszlop érvényes adattípusai bármely adattípus az egész szám adattípus kategóriájában, kivéve a bitadattípust vagy a tizedes adattípust.

vetőmag

Az egész szám értéket, amelyet a táblázat első sorának kell hozzárendelni. Minden következő sor megkapja a következő identitásértéket, amely az utolsó IDENTITY érték plusz az inkrementérték . Ha nem jelöled meg a seedet vagy az incrementet, mindkettő alapértelmezetten 1-re van.

növekményes

Az egész szám érték, amelyet a táblázat következő sorainak magértékéhez kell hozzáadni.

column_name

Az oszlop neve, amit az új táblázatba kell beilleszteni.

Visszatérési típusok

Ugyanazt adja vissza, mint data_type.

Megjegyzések

Mivel ez a függvény oszlopot hoz létre egy táblában, az alábbi módok egyikén kell megadni a kiválasztó listában az oszlop nevét:

--(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;  

Támogatás Microsoft Fabric Data Warehouse

Fabric Data Warehouse-ben nem lehet megadni seed vagy increment értékeket, mert a rendszer automatikusan kezeli ezeket az értékeket, hogy egyedi egész számokat biztosítson. Egy oszlopdefinícióhoz CREATE TABLE egy állításban csak a használd BIGINT IDENTITY. További információért lásd CREATE TABLE (Transact-SQL) IDENTITY (Tulajdonság) és IDENTITY Fabric Data Warehouse.

Példák

A következő példa az AdventureWorks2025 adatbázis összes Contact sorát egy új táblába helyezi be, amelynek neve NewContact. A IDENTITY függvény az azonosító számokat úgy állítja be, hogy a táblázatban 100-ról induljon, nem pedig 1 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