如何在sql server compact中获取特定表的当前标识号

时间:2013-07-09 08:38:05

标签: sql sql-server-ce

我想获取特定表的当前标识值 与sql server中的IDENT_CURRENT('table')一样

8 个答案:

答案 0 :(得分:18)

如果要获取特定表的最后一个标识插入值,请使用以下语句:

select IDENT_CURRENT('tablename')

例如:

select IDENT_CURRENT('Employee')

答案 1 :(得分:7)

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'

答案 2 :(得分:3)

SELECT AUTOINC_SEED 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='TableName' 
AND COLUMN_NAME='ColumnName'
如果您正在寻找的是标识列的种子值是什么(即标识列的第一个值是或将要是什么),来自Hamid's answer

就没问题了,但是如果你是查找插入行的下一个值将是什么,这是您要使用的查询:

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

答案 3 :(得分:3)

要检查身份:

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

重新设置身份

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

如果您想在INSERT之后使用它,可以使用

SELECT @@IDENTITY

否则你必须使用:

SELECT MAX(Id) FROM Table

答案 6 :(得分:1)

SELECT IDENT_CURRENT('tableName or ViewName')

例如:

SELECT IDENT_CURRENT('Student')

答案 7 :(得分:-1)

DECLARE @v_identity
SELECT @v_identity = ISNULL(MAX([index]), 0) + 1
FROM [dbo].[Table]
SELECT @v_identity