小编典典

将IDENTITY转换为数据类型tinyint的算术溢出错误

sql

我正在设计SQL Server 2008 R2 SP2
Express数据库中的表。我创建的表具有nvarchar用于数据的tinyint列和用于自动递增标识的列,并假设行数不多(这就是为什么我选择0-255
tinyint)。当我添加超过255行时,即使删除该表中的所有行并尝试添加一个新行,该错误仍然会永久发生。我正在使用SQL Server
Management Studio Express进行此操作。

  1. 如何强制数据库引擎检查哪些索引是空闲的?
  2. 如果我改变会出现这种情况太tinyintint的和达到极限int是多少?

阅读 294

收藏
2021-04-22

共1个答案

小编典典

一旦添加了255行,就想从表中删除所有行,但是即使删除所有行之后,增量列的计数器也已设置为255。

为了解决这个问题,您需要在删除所有行之后重置增量列的计数器。删除所有行时,请使用下面的查询,以便计数器将重置为重置为0。执行此查询后,您可以在表中添加行,且增量列值为1或在表设计时设置的值。

DELETE FROM [TestTable]

DBCC CHECKIDENT ('[TestTable]', RESEED, 0)
GO

如果要删除表中的所有行,也可以使用truncate table命令。Truncate Command还将增量列重置为初始值。

Truncate Table [TestTable]
2021-04-22