IDENTITY (関数) (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
INTO を伴う SELECT ステートメントでのみ使用 テーブル 句を新しいテーブルに id 列を挿入します。 似ていますが、IDENTITY 関数は CREATE TABLE と ALTER TABLE で使用される IDENTITY プロパティではありません。
注意
複数のテーブルで使用できる自動的に増分する番号、またはテーブルを参照せずにアプリケーションから呼び出すことができる自動的に増分する番号を作成するには、「シーケンス番号」を参照してください。
構文
IDENTITY (data_type [ , seed , increment ] ) AS column_name
引数
data_type
ID 列のデータ型を指定します。 Id 列の有効なデータ型は、整数データ型に分類される任意のデータ型を除く、bit データ型、または decimal データ型。
seed
テーブル内の先頭行に割り当てる整数値を指定します。 以降の各行は次の id の値は最後の ID 値が割り当てられていると インクリメント 値。 どちらの場合 シード も インクリメント を指定すると、どちらも、既定を 1 にします。
increment
テーブル内の連続する行に対して、seed の値に加える整数値です。
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;
例
次の例では、AdventureWorks2022 データベースの 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
参照
CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL)
IDENTITY (プロパティ) (Transact-SQL)
SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)