我想获取特定表的当前标识值 与sql server中的IDENT_CURRENT('table')一样
答案 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