我从SQL Server数据库中的表中删除了一些记录.现在ID从101到1200.我想再次删除记录,但我希望ID能够回到102.有没有办法在SQL Server中执行此操作?
发出以下命令重新设置mytable以从1开始:
DBCC CHECKIDENT (mytable, RESEED, 0)
在线上书籍(BOL,SQL帮助)中阅读它.另外请注意,您没有比您设置的种子更高的记录.
DBCC CHECKIDENT('databasename.dbo.tablename', RESEED, number)
如果number = 0,则在下一个插入中,自动增量字段将包含值1
如果number = 101,则在下一个插入中,自动增量字段将包含值102
一些额外的信息...可能对您有用在上面的查询中
给出自动增量之前number
,您必须确保现有表的自动增量列包含的值小于该值number
.
要从表(table1)获取列(column_name)的最大值,可以使用以下查询
SELECT MAX(column_name) FROM table1
半白痴:
declare @max int; select @max = max(key) from table; dbcc checkident(table,reseed,@max)
http://sqlserverplanet.com/tsql/using-dbcc-checkident-to-reseed-a-table-after-delete
试试这个:
ALTER TABLE tablename AUTO_INCREMENT = 1
我想到了.它的:
DBCC CHECKIDENT ('tablename', RESEED, newseed)
删除并重新设定数据库中的所有表.
USE [DatabaseName] EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" -- Disable All the constraints EXEC sp_MSForEachTable "DELETE FROM ?" -- Delete All the Table data Exec sp_MSforeachtable 'DBCC CHECKIDENT(''?'', RESEED, 0)' -- Reseed All the table to 0 Exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all" -- Enable All the constraints back -- You may ignore the errors that shows the table without Auto increment field.