我想获取特定表的当前标识值,例如 sql server 中的 IDENT_CURRENT('table')
问问题
48807 次
8 回答
27
如果要获取特定表的最后一个标识插入值,请使用以下语句:
select IDENT_CURRENT('tablename')
例如:
select IDENT_CURRENT('Employee')
于 2016-10-20T09:53:24.260 回答
7
SELECT IDENT_SEED(TABLE_SCHEMA+'.'+TABLE_NAME) AS Seed,
IDENT_INCR(TABLE_SCHEMA+'.'+TABLE_NAME) AS Increment,
IDENT_CURRENT(TABLE_SCHEMA+'.'+TABLE_NAME) AS Current_Identity,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE OBJECTPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME), 'TableHasIdentity') = 1
AND TABLE_TYPE = 'BASE TABLE'
于 2013-07-09T08:59:41.163 回答
6
要检查身份:
DBCC CHECKIDENT ('[schema].[YourTableName]', NORESEED);
要重新设定身份:
DBCC CHECKIDENT ('[schema].[YourTableName]', RESEED, value);
于 2018-07-18T06:49:40.493 回答
3
SELECT AUTOINC_SEED
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableName'
AND COLUMN_NAME='ColumnName'
如果您要查找的是身份列的种子值(即身份列的第一个值曾经是或将要是什么),那么来自Hamid 的回答很好,但是如果您正在寻找下一个值插入的行将是,这是您要使用的查询:
SELECT AUTOINC_NEXT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='TableName'
AND COLUMN_NAME='ColumnName'
于 2014-10-28T13:04:07.553 回答
1
如果你想在 INSERT 之后使用它,你可以使用
SELECT @@IDENTITY
否则,您必须使用:
SELECT MAX(Id) FROM Table
于 2013-07-09T09:34:23.727 回答
1
SELECT IDENT_CURRENT('tableName or ViewName')
前任:
SELECT IDENT_CURRENT('Student')
于 2020-02-25T07:54:39.373 回答
0
SELECT AUTOINC_SEED
FROM INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tablename'
and COLUMN_NAME='columnName'
于 2013-07-09T09:17:08.997 回答
-1
DECLARE @v_identity
SELECT @v_identity = ISNULL(MAX([index]), 0) + 1
FROM [dbo].[Table]
SELECT @v_identity
于 2016-04-05T05:57:13.593 回答