Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server mssql 2008每分钟增加一次id值_Sql Server_Identity - Fatal编程技术网

Sql server mssql 2008每分钟增加一次id值

Sql server mssql 2008每分钟增加一次id值,sql-server,identity,Sql Server,Identity,我在表中创建了主键 [id] [bigint] IDENTITY(1,1) NOT NULL 我注意到在上个星期,我的体重每分钟增加一磅。我用以检查: DBCC CHECKIDENT ('Issue'); 我找不到任何触发器或其他东西。我不会在表中创建和删除记录。这可能是MsSql的错误吗? 我使用的是MsSql 2008 R2。可能存在这样的情况:您添加了一些行,然后删除了。 执行此操作后,id将添加到删除的最后一行id中的1。此问题可能与事务回滚有关。回滚将删除事务中

我在表中创建了主键

[id] [bigint] IDENTITY(1,1) NOT NULL          
我注意到在上个星期,我的体重每分钟增加一磅。我用以检查:

DBCC CHECKIDENT ('Issue');
我找不到任何触发器或其他东西。我不会在表中创建和删除记录。这可能是MsSql的错误吗?

我使用的是MsSql 2008 R2。

可能存在这样的情况:您添加了一些行,然后删除了。
执行此操作后,id将添加到删除的最后一行id中的1。

此问题可能与
事务回滚有关。回滚将删除事务中包含的数据行,但不会将标识值重置为以前的设置

检查这个

CREATE TABLE #ident 
( 
      ID INT IDENTITY(1,1) 
      , column1 VARCHAR(20) NULL 
) 

INSERT #ident 
VALUES ('a'),('b'),('c')


BEGIN TRAN 
INSERT #ident 
VALUES ('d'),('e'),('f')
ROLLBACK TRAN

INSERT #ident 
VALUES ('g'),('h'),('i')

select * from #ident
结果是

ID  column1
--  -------
1   a
2   b
3   c
7   g
8   h
9   i

因此,无论何时回滚事务,都不会重置标识。要检查的另一件事是任何新存储过程是否正确。我遇到过这样的情况:人们编写了更改脚本,却忘记了在两个部分之间插入一个
GO
,因此第二部分包含在存储过程中。我们神秘地将记录添加到表中。花了一段时间才抓住它


在您的情况下,它可能正在执行某些操作(如在表中设定数据种子),但一个事务正在导致它回滚。

您对“我的数据库创建id不是序列号”的确切含义是什么?我的数据库不会增加id 1的值。我得到一个奇怪的id值,比如3000,然后是3120,然后是3822,然后是5326。我找不到原因。你用的是什么版本的MSSQL?我用的是MSSQL 2010没有所谓的“MSSQL 2010”-有SQL Server 2008,SQL Server 2008 R2,SQL Server 2012…但我得到的id之间的差异是1000!这是一个非常大的值。是的……这是一个很大的差异。我做了很多次,但这个问题从来没有发生在我身上