Udostępnij za pomocą


IDENTITY (Funkcja) (Transact-SQL)

Dotyczy do:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMagazyn w Microsoft FabricBaza danych SQL w Microsoft Fabric

IDENTITY jest używany tylko w SELECT instrukcji z klauzulą tabeli INTO do wstawienia kolumny tożsamości do nowej tabeli. Chociaż funkcja jest IDENTITY podobna, nie IDENTITY jest własnością używaną z CREATE TABLE i ALTER TABLE.

Uwaga / Notatka

Aby utworzyć automatycznie zwiększającą się liczbę, która może być używana w wielu tabelach lub może być wywoływana z poziomu aplikacji bez odwoływania się do jakiejkolwiek tabeli, zobacz Numery Sekwencyjne.

Transact-SQL konwencje składni

Składnia

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

Argumenty (w programowaniu)

data_type

Typ danych kolumny tożsamości. Prawidłowe typy danych dla kolumny tożsamości to dowolne typy danych kategorii typu danych całkowitych, z wyjątkiem typu danych bitowych lub typu danych dziesiętnych .

nasienie

Wartość całkowita przypisana do pierwszego wiersza tabeli. Każdy kolejny wiersz ma przypisaną następną wartość tożsamości, która jest równa ostatniej wartości IDENTITY oraz wartości przyrostowej . Jeśli nie określono ani inkrementacji, ani inkrementacji , obie wartości domyślne to 1.

wzrost

Wartość całkowita do wartości seed dla kolejnych wierszy w tabeli.

column_name

Nazwa kolumny, którą należy wstawić do nowej tabeli.

Typy zwracane

Zwraca to samo co data_type.

Uwagi

Ponieważ ta funkcja tworzy kolumnę w tabeli, nazwa kolumny musi być określona na liście wyboru w jeden z następujących sposobów:

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

W Fabric Data Warehouse nie można określić seed ani increment, ponieważ te wartości są automatycznie zarządzane, aby zapewnić unikalne liczby całkowite. BIGINT IDENTITY jest wszystkim, co jest wymagane do definicji kolumny w zdaniu CREATE TABLE . Więcej informacji można znaleźć w CREATE TABLE (Transact-SQL), IDENTITY (Property) oraz IDENTITY in Fabric Data Warehouse.

Przykłady

Poniższy przykład wstawia wszystkie wiersze z tabeli Contact z bazy AdventureWorks2025 do nowej tabeli o nazwie NewContact. Funkcja ta IDENTITY służy do rozpoczynania numerów identyfikacyjnych od 100 zamiast 1 w tabeli 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