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

SQLServerのID列の増分値を返します

    SQL Serverでは、T-SQL IDENT_INCR()を使用できます。 ID列の増分値を返す関数。これは、ID列を作成するときに指定された増分値です。

    構文

    構文は次のようになります:

    IDENT_INCR ( 'table_or_view' )
    

    table_or_view 引数は、有効なID増分値をチェックするためのテーブルまたはビューを指定する式です。

    例1-基本的な使用法

    これが基本的なコード例です。

    SELECT IDENT_INCR('Pets') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 1        |
    +----------+
    

    この場合、ID増分値は1です。

    より多くのテーブルをチェックする別のクエリがあります。

    SELECT 
      IDENT_INCR('Pets') AS Pets,
      IDENT_INCR('BestFriends') AS BestFriends,
      IDENT_INCR('Cities') AS Cities;
    

    結果:

    +--------+---------------+----------+
    | Pets   | BestFriends   | Cities   |
    |--------+---------------+----------|
    | 1      | 10            | 10       |
    +--------+---------------+----------+
    

    例2–スキーマを含める

    引数にスキーマを含めることもできます。

    SELECT IDENT_INCR('dbo.Pets') AS Result;
    

    結果:

    +----------+
    | Result   |
    |----------|
    | 1        |
    +----------+
    

    例3–データベース内のすべてのテーブルを確認する

    これは、データベース内のすべてのテーブルでIDシード値を確認する例です。

    SELECT 
      TABLE_SCHEMA, 
      TABLE_NAME,   
      IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) AS IDENT_INCR  
    FROM INFORMATION_SCHEMA.TABLES  
    WHERE IDENT_INCR(TABLE_SCHEMA + '.' + TABLE_NAME) IS NOT NULL;
    

    結果:

    +----------------+----------------+--------------+
    | TABLE_SCHEMA   | TABLE_NAME     | IDENT_INCR   |
    |----------------+----------------+--------------|
    | dbo            | ConstraintTest | 1            |
    | dbo            | Event          | 1            |
    | dbo            | Scoreboard     | 1            |
    | dbo            | Pets           | 1            |
    | dbo            | BestFriends    | 10           |
    | dbo            | Cities         | 10           |
    | dbo            | Colors         | 1            |
    +----------------+----------------+--------------+
    

    戻り値について

    IDENT_INCR()の戻り値 はnumeric(@@MAXPRECISION,0)) 。これは、固定の精度とスケールを持つ数値データ型であることを意味します。

    精度はサーバーによって異なります。 @@MAXPRECISION 引数は、サーバーで現在設定されている10進数および数値のデータ型で使用されるレベルを返します。精度は、小数点以下の最大合計桁数を指定します(小数点の左側と右側の桁を含みます)。

    2番目の引数は、0のスケールを指定します 、これは小数点以下の桁がないことを意味します。

    次のクエリを実行して、サーバーに現在設定されている精度レベルを見つけることができます。

    SELECT @@MAX_PRECISION AS [Max Precision];
    

    これが私のシステムの結果です:

    +-----------------+
    | Max Precision   |
    |-----------------|
    | 38              |
    +-----------------+
    

    ID列の作成

    IDENTITY()を使用してID列を作成できます CREATE TABLEのプロパティ またはALTER TABLE 声明。

    ID列を作成するもう1つの方法は、IDENTITY()です。 働き。これにより、SELECT INTOを使用するときにID列を作成できます。 あるソースから別のソースにデータを転送するステートメント。


    1. Mysqlの行サイズの変更制限が大きすぎます

    2. 問題セット2–エンティティと属性の特定

    3. `in`句にすべての値を持つ列のみでクエリを結合します

    4. MySQLのユーザー名とパスワードを取得するにはどうすればよいですか?