因此,如果我想将所有表重置为1
,这是正常的代码exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT(''?'', RESEED, 1)'
如果我想将其重置为表格中的最大ID号,该怎么办? 我的意思是那样的
exec sp_MSforeachtable @command1 = 'DBCC CHECKIDENT (''?'', RESEED, (select IDENT_CURREN(''?'') )'
任何人都可以解释为什么它不起作用?感谢
这样做的目的是,有时当服务器关闭时,标识列只会从其值跳过1000 例如,如果当前标识值为2且服务器关闭,则下一个值将为1002
答案 0 :(得分:0)
这对我有用:
exec sp_MSforeachtable @command1 =
'declare @contar int = (select count(*) from ?)
DBCC CHECKIDENT(''?'', RESEED, @contar)'