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

SQL ServerのIDENTITY()とIDENTITY():違いは何ですか?

    奇妙に思えるかもしれませんが、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ずつ増やしました。また、この関数では、列のデータ型を指定するために最初の引数が必要であることに注意してください。


    1. KGXGNポーリングエラー(15)

    2. SQLの大文字と小文字を区別する文字列の比較

    3. アクティブなSQLServer接続を確認するにはどうすればよいですか?

    4. SQLiteでのDateTime()関数のしくみ