使用sp_MSforeachtable重置所有表标识

时间:2014-11-26 16:28:44

标签: sql-server reset identity

因此,如果我想将所有表重置为1

,这是正常的代码
exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT(''?'', RESEED, 1)'

如果我想将其重置为表格中的最大ID号,该怎么办? 我的意思是那样的

 exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT (''?'', RESEED, (select IDENT_CURREN(''?'') )'

任何人都可以解释为什么它不起作用?感谢

这样做的目的是,有时当服务器关闭时,标识列只会从其值跳过1000 例如,如果当前标识值为2且服务器关闭,则下一个值将为1002

1 个答案:

答案 0 :(得分:0)

这对我有用:

exec sp_MSforeachtable @command1 =
'declare @contar int = (select count(*) from ?)
DBCC CHECKIDENT(''?'', RESEED, @contar)'