対象者:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft FabricのWarehouseについて
Microsoft FabricにおけるSQLデータベース
IDENTITYは、SELECT節を含む、新しいテーブルに同一列を挿入するための文でのみ使われます。 似ていますが、IDENTITY関数は IDENTITY と CREATE TABLE で使われる ALTER TABLE 性質ではありません。
注意
複数のテーブルで使用できる自動的に増分する番号、またはテーブルを参照せずにアプリケーションから呼び出すことができる自動的に増分する番号を作成するには、「シーケンス番号」を参照してください。
構文
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では、 seed や incrementを指定することはできません。これらの値は自動的に管理され、一意な整数が提供されます。
BIGINT IDENTITY は CREATE 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