次の方法で共有


IDENTITY (関数) (Transact-SQL)

対象者:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft FabricのWarehouseについてMicrosoft FabricにおけるSQLデータベース

IDENTITYは、SELECT節を含む、新しいテーブルに同一列を挿入するための文でのみ使われます。 似ていますが、IDENTITY関数は IDENTITYCREATE TABLE で使われる ALTER TABLE 性質ではありません。

注意

複数のテーブルで使用できる自動的に増分する番号、またはテーブルを参照せずにアプリケーションから呼び出すことができる自動的に増分する番号を作成するには、「シーケンス番号」を参照してください。

Transact-SQL 構文表記規則

構文

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

引数

data_type

識別列のデータ型。 Id 列の有効なデータ型は、整数データ型に分類される任意のデータ型を除く、bit データ型、または decimal データ型。

テーブルの最初の行に割り当てる整数値。 以降の各行は次の id の値は最後の ID 値が割り当てられていると インクリメント 値。 どちらの場合 シードインクリメント を指定すると、どちらも、既定を 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では、 seedincrementを指定することはできません。これらの値は自動的に管理され、一意な整数が提供されます。 BIGINT IDENTITYCREATE TABLE 文の列定義に必要なすべてです。 詳細については、Fabric Data WarehouseのCREATE TABLE (Transact-SQL)、IDENTITY(プロパティ)、およびIDENTITYをご覧ください。

以下の例では、AdventureWorks2025データベースの Contact テーブルからすべての行を新しいテーブル「 NewContact」に挿入します。 IDENTITY関数は、NewContact表の識別番号を1ではなく100から開始するために使われます。

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