奇妙に思えるかもしれませんが、T-SQLにはIDENTITY()
があります プロパティとIDENTITY()
機能。それぞれが(類似しているが)異なる目的を果たします。
-
IDENTITY()
プロパティは、テーブルにID列を作成します。 ID列には、自動的に増加するID番号が含まれています。このプロパティは、CREATE TABLE
で使用されます およびALTER TABLE
ステートメント。 -
IDENTITY()
ただし、関数はSELECT
でのみ使用されますINTO
を含むステートメント 新しいテーブルにID列を挿入するtable句。
SQL-DMOのIdentity
もあります 列の行IDプロパティを公開するプロパティですが、ここでは説明しません。 Microsoftは、このプロパティがSQL Serverの将来のバージョンで削除されること、および新しい開発作業での使用を避けることをお勧めします。
IDENTITY()プロパティ
IDENTITY()
の使用例を次に示します。 プロパティ。
CREATE TABLE Pets ( PetId int IDENTITY(1,1) PRIMARY KEY, PetName varchar(255) );
このコードは、2つの列を持つテーブルを作成します。最初の列(PetId
)はID列です(IDENTITY()
を使用しているため その定義のプロパティ)。
ID列を作成したので、ペットの名前をPetName
に挿入できます。 各行のIDを含める必要のない列。
INSERT INTO Pets (PetName) VALUES ('Homer'), ('Felix'), ('Ruff'); SELECT * FROM Pet;
結果:
+---------+-----------+ | PetId | PetName | |---------+-----------| | 1 | Homer | | 2 | Felix | | 3 | Ruff | +---------+-----------+
この場合、番号付けは1から始まり、各行は1ずつ増加します。これは、IDENTITY(1,1)
を使用したためです。 シード値が1であり、新しい行ごとに1ずつ増加することを指定します。
IDENTITY()関数
前述のように、IDENTITY()
関数はSELECT INTO
で使用されます 声明。 IDENTITY()
の使用例を次に示します。 機能。
SELECT IDENTITY(int, 101, 10) AS pet_id, PetName AS pet_name INTO BestFriends FROM Pets; SELECT * FROM BestFriends;
結果:
+----------+------------+ | pet_id | pet_name | |----------+------------| | 101 | Homer | | 111 | Felix | | 121 | Ruff | +----------+------------+
ここでは、BestFriends
というテーブルを作成しました Pets
から入力します テーブル。
この場合、カウントを101から開始し、10ずつ増やしました。また、この関数では、列のデータ型を指定するために最初の引数が必要であることに注意してください。