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列を作成できます。 あるソースから別のソースにデータを転送するステートメント。