【发布时间】:2012-07-12 09:50:27
【问题描述】:
我已经编写了将所有表的标识重置为 1 的代码,但在某些表中标识不会重置为 1,否则将重置为 0 或 2 或其他数字 这是我的代码
declare @Count int
declare @C int
declare @Str varchar(20)
set @C=1
set @Count=(select COUNT(*) TABLE_NAME from INFORMATION_SCHEMA.TABLES )
while @C<@Count
BEGIN
with Records AS(select row_number() over(order by TABLE_NAME) as 'row1', *
from INFORMATION_SCHEMA.TABLES)
select @Str= TABLE_NAME from records
where row1=@C
set @C=@C+1
DBCC CHECKIDENT (@Str , reseed, 0)
END
【问题讨论】:
-
只需使用光标即可。那个while循环非常低效。
标签: sql-server-2008 identity reset