sql >> データベース >  >> RDS >> Sqlserver

SQL ServerでIDENTITY()関数を使用する方法

    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)と比較 ペットの場合 表)。


    1. VisualStudio2012のmySQLデータソース

    2. 従業員をマネージャーと一緒に取得する方法

    3. MySQL-1つのクエリで異なる値を持つ複数の行を更新します

    4. Microsoft AccessレポートをPDFに変換する方法(3つの方法)