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

SQLServerのID列の元のシードを返す

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

    構文

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

    IDENT_SEED ( 'table_or_view' )
    

    table_or_view 引数は、IDシード値をチェックするテーブルまたはビューを指定する式です。

    例1-基本的な使用法

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

    SELECT IDENT_SEED('Pets') AS Result;
    

    結果:

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

    この場合、IDシード値は1です。

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

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

    結果:

    +--------+---------------+----------+
    | Pets   | BestFriends   | Cities   |
    |--------+---------------+----------|
    | 1      | 101           | 150      |
    +--------+---------------+----------+
    

    これらの各テーブルは、異なるシードID値を使用して作成されました。

    例2–スキーマを含める

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

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

    結果:

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

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

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

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

    結果:

    +----------------+----------------+--------------+
    | TABLE_SCHEMA   | TABLE_NAME     | IDENT_SEED   |
    |----------------+----------------+--------------|
    | dbo            | ConstraintTest | 1            |
    | dbo            | Event          | 1            |
    | dbo            | Scoreboard     | 1            |
    | dbo            | Pets           | 1            |
    | dbo            | BestFriends    | 101          |
    | dbo            | Cities         | 150          |
    | dbo            | Colors         | 1            |
    +----------------+----------------+--------------+
    

    戻り値について

    IDENT_SEED()の戻り値 は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. NTILE()がSQLServerでどのように機能するか

    2. PostgreSQL列挙型をJPAおよびHibernateでマッピングする方法

    3. 自分で素晴らしいリストを作成するか、ノートブックとしてGitHubを作成する

    4. MySQLでアクセントを削除する方法は?