IDENT_INCR (Transact-SQL)
ID 列を持つテーブルやビューでの ID 列の作成時に指定された増分値を返します。値は、numeric (**@@**MAXPRECISION,0) として返されます。
構文
IDENT_INCR ( 'table_or_view' )
引数
- ' table_or_view '
有効な ID 増分値を確認するためのテーブルまたはビューを表す式を指定します。 table_or_view には文字列定数、変数、関数、または列名を引用符で囲んで指定できます。 table_or_view のデータ型は char、nchar、varchar、または nvarchar です。
戻り値の型
numeric
例外
エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。
SQL Server では、そのユーザーが所有しているか、または権限を与えられている、セキュリティ保護可能なアイテムのメタデータのみを表示できます。 つまり、オブジェクトに対する権限がユーザーに与えられていない場合、メタデータを生成する組み込み関数 (IDENT_INCR など) が NULL を返す可能性があります。 詳細については、「メタデータ表示の構成」を参照してください。
使用例
A. 指定したテーブルの増分値を返す
次の例では、AdventureWorks データベース内の Person.Address テーブルの増分値を返します。
USE AdventureWorks2012;
GO
SELECT IDENT_INCR('Person.Address') AS Identity_Increment;
GO
USE AdventureWorks2012;
GO
SELECT IDENT_INCR('Person.Address') AS Identity_Increment;
GO
B. 複数のテーブルの増分値を返す
次の例では、増分値を持つ ID 列を含む、AdventureWorks データベースのテーブルを返します。
USE AdventureWorks2012;
GO
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;
USE AdventureWorks2012;
GO
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
------------ ------------------------ ----------
Person Address 1
Production ProductReview 1
Production TransactionHistory 1
Person AddressType 1
Production ProductSubcategory 1
Person vAdditionalContactInfo 1
dbo AWBuildVersion 1
Production BillOfMaterials 1