適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
僅SELECT在帶有INTO table子句的語句中,將IDENTITY身份欄位加入新資料表。 雖然相似,但函IDENTITY數與你使用且 CREATE TABLEALTER TABLE的性質不同IDENTITY。
注意
若要建立一個自動遞增的數字,可以在多個資料表中使用,或在應用程式中呼叫而無需參考任何資料表,請參見 序號。
語法
Syntax for SQL Server, Azure SQL Database, Azure SQL 受控執行個體, SQL database in Fabric:
IDENTITY ( data_type [ , seed , increment ] ) AS column_name
Fabric 資料倉儲的語法:
IDENTITY ( data_type ) AS column_name
引數
data_type
身份欄位的資料型態。 身份欄位的有效資料型態是指整 數 資料類型中的任何資料型態,唯獨位 元資料型 別或 十進位 資料型別除外。
種子
將整數值指派給表格的第一列。 每一列後續的單位值,也就是最後 IDENTITY 一個值加上 遞增 值。 如果你沒指定 種子 或 增量,兩者都預設為 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;
Microsoft Fabric Data Warehouse中的支援
在Fabric Data Warehouse中,你無法指定 seed 或 值increment,因為系統會自動管理這些值,提供唯一的整數。 對於陳述句中的 CREATE TABLE 欄位定義,你只需使用 BIGINT IDENTITY。 欲了解更多資訊,請參見CREATE TABLE(Transact-SQL)( IDENTITY 財產)及IDENTITYFabric Data Warehouse。
範例
以下範例將 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