我正在设计SQL Server 2008 R2 SP2 Express数据库中的表。我创建的表具有nvarchar用于数据的tinyint列和用于自动递增标识的列,并假设行数不多(这就是为什么我选择0-255 tinyint)。当我添加超过255行时,即使删除该表中的所有行并尝试添加一个新行,该错误仍然会永久发生。我正在使用SQL Server Management Studio Express进行此操作。
nvarchar
tinyint
int
一旦添加了255行,就想从表中删除所有行,但是即使删除所有行之后,增量列的计数器也已设置为255。
为了解决这个问题,您需要在删除所有行之后重置增量列的计数器。删除所有行时,请使用下面的查询,以便计数器将重置为重置为0。执行此查询后,您可以在表中添加行,且增量列值为1或在表设计时设置的值。
DELETE FROM [TestTable] DBCC CHECKIDENT ('[TestTable]', RESEED, 0) GO
如果要删除表中的所有行,也可以使用truncate table命令。Truncate Command还将增量列重置为初始值。
Truncate Table [TestTable]