共用方式為


IDENTITY (函數) (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 中的倉庫Microsoft Fabric 中的 SQL 資料庫

IDENTITYSELECT 用於帶有 INTO 表格 子句的敘述中,將身份欄位插入新資料表。 雖然相似,但函 IDENTITY 數並非 IDENTITYCREATE TABLEALTER TABLE搭配時所用的性質。

注意

若要建立可用於多個資料表中或可在不參考任何資料表的情況下從應用程式進行呼叫的自動遞增數字,請參閱 序號

Transact-SQL 語法慣例

語法

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

引數

data_type

身份欄位的資料型態。 識別欄位的有效資料類型是整數資料類型類別目錄的任何資料類型,但 bit 資料類型或 decimal 資料類型除外。

種子

整數值將被分配給表格中第一列。 每個後續的資料列都會被指派下一個識別值,也就是最後一個 IDENTITY 值加上 increment 值。 如果既未指定 seed,也未指定 increment,則兩者都會預設為 1。

增加

整數值,為表格中連續列的 種子 值加到。

column_name

要插入新資料表的欄位名稱。

傳回類型

傳回與 data_type 相同的值。

備註

由於這個函數會在資料表中建立一個資料行,因此,您必須依照下列方式之一,在選取清單中指定一個資料行名稱:

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

在 Fabric Data Warehouse 中,你無法指定 seed or increment,因為這些值會自動管理以提供唯一的整數。 BIGINT IDENTITY 是陳述句中欄位定義 CREATE TABLE 所需的全部條件。 欲了解更多資訊,請參閱 Fabric Data Warehouse 中的CREATE TABLE(Transact-SQL)、IDENTITY(屬性)及 IDENTITY。

範例

以下範例將 AdventureWorks2025 資料庫中該資料表的所有資料列 Contact 插入一個名為 NewContact的新資料表中。 此 IDENTITY 函數用於將識別號碼從表格中的100開始,而非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