SQL Serverでは、IDENTITY()
を使用できます ID列を新しいテーブルに挿入する関数。
ただし、この関数をIDENTITY()
と混同しないでください。 プロパティ 、CREATE TABLE
で使用されます およびALTER TABLE
ステートメント。
IDENTITY()
機能 SELECT
でのみ使用されます INTO
を含むステートメント テーブル句。たとえば、あるテーブルから別のテーブルにデータを転送するときに使用できます。
構文
構文は次のようになります:
IDENTITY (data_type [ , seed , increment ] ) AS column_name
data_type 引数は、ID列のデータ型を指定します。有効なデータ型は、ビットを除く、整数データ型カテゴリのすべてのデータ型です。 および10進数 。
シード テーブルにロードされる最初の行に使用される値です。
増分 ロードされた前の行のID値に追加される増分値です。
column_name 引数は、作成するID列の名前を提供します。
例1-基本的な使用法
これが基本的なコード例です。
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets;
これにより、ペットからデータが選択されます テーブルを作成し、 BestFriendsという新しいテーブルに挿入します。 。最初の列は、IDENTITY()
で作成したID列です。 働き。この場合、シードを101に設定し、増分を10に設定します。その列を pet_idと呼びます。 。
2番目の列をpet_nameと呼びます 、 PetNameという列からデータを入力します 。
ペットは次のとおりです テーブルは次のようになります:
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) ); INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
結果:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
そして、これが BestFriends データを転送した後のテーブルは次のようになります:
SELECT * FROM BestFriends;
結果:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
したがって、ペットの名前は同じままですが、ID列には異なる値が含まれています(IDENTITY(int, 101, 10)
を使用したため 、IDENTITY(1,1)
と比較 ペットの場合 表)。