IDENTITY (Fungsi) (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsGudang data di Microsoft FabricDatabase SQL di Microsoft Fabric

Gunakan IDENTITY hanya dalam SELECT pernyataan dengan INTO table klausa untuk menambahkan kolom identitas ke tabel baru. Meskipun mirip, fungsinya IDENTITY tidak sama dengan IDENTITY properti yang Anda gunakan dengan CREATE TABLE dan ALTER TABLE.

Catatan

Untuk membuat angka yang bertambah secara otomatis yang dapat Anda gunakan di beberapa tabel atau memanggil dari aplikasi tanpa merujuk tabel manapun, lihat Nomor Urutan.

Konvensi sintaks transact-SQL

Sintaks

Sintaks untuk SQL Server, Azure SQL Database, Azure SQL Managed Instance, database SQL di Fabric:

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

Sintaks untuk Gudang Data Fabric:

IDENTITY ( data_type ) AS column_name  

Argumen

data_type

Jenis data kolom identitas. Tipe data yang valid untuk kolom identitas adalah tipe data apa pun dalam kategori tipe data bilangan bulat , kecuali tipe data bit atau tipe data desimal .

biji

Nilai bilangan bulat yang akan ditetapkan ke baris pertama dalam tabel. Setiap baris berikutnya mendapatkan nilai identitas berikutnya, yaitu nilai terakhir IDENTITY ditambah nilai penambahan . Jika Anda tidak menentukan seed atau increment, keduanya default ke 1.

Kenaikan

Nilai bilangan bulat yang akan ditambahkan ke nilai benih untuk baris berturut-turut dalam tabel.

column_name

Nama kolom yang akan disisipkan ke dalam tabel baru.

Tipe pengembalian

Mengembalikan yang sama seperti data_type.

Keterangan

Karena fungsi ini membuat kolom dalam tabel, Anda harus menentukan nama untuk kolom dalam daftar select dengan salah satu cara berikut:

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

Dukungan di Microsoft Fabric Data Warehouse

Dalam Fabric Data Warehouse, Anda tidak dapat menentukan seed nilai karena increment sistem secara otomatis mengelola nilai-nilai ini untuk menyediakan bilangan bulat unik. Untuk definisi kolom dalam sebuah CREATE TABLE pernyataan, Anda hanya perlu menggunakan BIGINT IDENTITY. Untuk informasi selengkapnya, lihat CREATE TABLE (Transact-SQL) IDENTITY (Properti) dan IDENTITY di Fabric Data Warehouse.

Contoh

Contoh berikut menyisipkan semua baris dari Contact tabel di database AdventureWorks2025 ke dalam tabel baru bernama NewContact. Fungsi ini IDENTITY mengatur nomor identifikasi untuk dimulai dari 100, bukan 1 dalam NewContact tabel.

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