使用sp_MSforeachtable重置所有表标识

问题描述 投票:0回答:1

所以这是正常的代码,如果我想将所有表重置为1

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

如果我想将其重置为我的表中的最大ID号,我的意思是这样的

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

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

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

sql-server reset identity
1个回答
0
投票

这对我有用:

exec sp_MSforeachtable @command1 =
'declare @contar int = (select count(*) from ?)
DBCC CHECKIDENT(''?'', RESEED, @contar)'
© www.soinside.com 2019 - 2024. All rights reserved.