IDENTITY (関数) (Transact-SQL)IDENTITY (Function) (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

INTO を伴う SELECT ステートメントでのみ使用 テーブル 句を新しいテーブルに id 列を挿入します。Is used only in a SELECT statement with an INTO table clause to insert an identity column into a new table. 似ていますが、IDENTITY 関数は CREATE TABLE と ALTER TABLE で使用される IDENTITY プロパティではありません。Although similar, the IDENTITY function is not the IDENTITY property that is used with CREATE TABLE and ALTER TABLE.

注意

複数のテーブルで使用できる自動的に増分する番号、またはテーブルを参照せずにアプリケーションから呼び出すことができる自動的に増分する番号を作成するには、「シーケンス番号」を参照してください。To create an automatically incrementing number that can be used in multiple tables or that can be called from applications without referencing any table, see Sequence Numbers.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

data_typedata_type
ID 列のデータ型を指定します。Is the data type of the identity column. Id 列の有効なデータ型は、整数データ型に分類される任意のデータ型を除く、bit データ型、または decimal データ型。Valid data types for an identity column are any data types of the integer data type category, except for the bit data type, or decimal data type.

seedseed
テーブル内の先頭行に割り当てる整数値を指定します。Is the integer value to be assigned to the first row in the table. 以降の各行は次の id の値は最後の ID 値が割り当てられていると インクリメント 値。Each subsequent row is assigned the next identity value, which is equal to the last IDENTITY value plus the increment value. どちらの場合 シードインクリメント を指定すると、どちらも、既定を 1 にします。If neither seed nor increment is specified, both default to 1.

incrementincrement
テーブル内の連続する行に対して、seed の値に加える整数値です。Is the integer value to add to the seed value for successive rows in the table.

column_namecolumn_name
新しいテーブルに挿入する列の名前を指定します。Is the name of the column that is to be inserted into the new table.

戻り値の型Return Types

同じを返します data_typeです。Returns the same as data_type.

RemarksRemarks

この関数ではテーブルに列が作成されるので、次のいずれかの方法で選択リストから列名を指定する必要があります。Because this function creates a column in a table, a name for the column must be specified in the select list in one of the following ways:

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

使用例Examples

次の例では、AdventureWorks2012AdventureWorks2012 データベースの Contact テーブルにあるすべての行を、NewContact という新しいテーブルに追加します。The following example inserts all rows from the Contact table from the AdventureWorks2012AdventureWorks2012database into a new table called NewContact. IDENTITY 関数を使用して、NewContact テーブルの識別番号を 1 ではなく 100 から開始するようにします。The IDENTITY function is used to start identification numbers at 100 instead of 1 in the NewContact table.

USE AdventureWorks2012;  
GO  
IF OBJECT_ID (N'Person.NewContact', N'U') IS NOT NULL  
    DROP TABLE Person.NewContact;  
GO  
ALTER DATABASE AdventureWorks2012 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 AdventureWorks2012 SET RECOVERY FULL;  
GO  
SELECT ContactNum, First, Last FROM Person.NewContact;  
GO  
  

参照See Also

CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
@@IDENTITY (Transact-SQL) @@IDENTITY (Transact-SQL)
IDENTITY (Property) (Transact-SQL) IDENTITY (Property) (Transact-SQL)
SELECT@local_variable (Transact-SQL) SELECT @local_variable (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL) DBCC CHECKIDENT (Transact-SQL)
sys.identity_columns (Transact-SQL)sys.identity_columns (Transact-SQL)