web-dev-qa-db-ja.com

SQL Server Compactで特定のテーブルの現在のID番号を取得する方法

SQL ServerのIDENT_CURRENT( 'table')のような特定のテーブルの現在のID値を取得したい

18
Hamid
SELECT AUTOINC_SEED 
FROM INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='tablename' 
and COLUMN_NAME='columnName'
1
Hamid

特定のテーブルの最後のID挿入値を取得する場合は、次のステートメントを使用します。

select IDENT_CURRENT('tablename')

例えば:

select IDENT_CURRENT('Employee')
22
Samba
SELECT IDENT_SEED(TABLE_NAME) AS Seed,
IDENT_INCR(TABLE_NAME) AS Increment,
IDENT_CURRENT(TABLE_NAME) AS Current_Identity,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_NAME), 'TableHasIdentity') = 1
AND TABLE_TYPE = 'BASE TABLE'
7
Md. Parvez Alam

身元を確認するには:

    DBCC CHECKIDENT ('[schema].[YourTableName]', NORESEED);

IDを再シードするには:

    DBCC CHECKIDENT ('[schema].[YourTableName]', RESEED, value);
4
Bikram
SELECT AUTOINC_SEED 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='TableName' 
AND COLUMN_NAME='ColumnName'

from Hamid's answer 探しているものがID列のシード値である場合(つまり、ID列の最初の値が何であったか、またはこれからになるか)であれば問題ありませんが、挿入された行の次の値がどうなるかを探して、これはあなたが使いたいクエリです:

SELECT AUTOINC_NEXT 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='TableName' 
AND COLUMN_NAME='ColumnName'
3
Alex

INSERTの直後に必要な場合は、

SELECT @@IDENTITY

それ以外の場合は、以下を使用する必要があります。

SELECT MAX(Id) FROM Table
1
ErikEJ
SELECT IDENT_CURRENT('tableName or ViewName')

例:

SELECT IDENT_CURRENT('Student')
1
Hari
DECLARE @v_identity
SELECT @v_identity = ISNULL(MAX([index]), 0) + 1
FROM [dbo].[Table]
SELECT @v_identity
0
test data