惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
The Cloudflare Blog
IT之家
IT之家
V
V2EX
雷峰网
雷峰网
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
小众软件
小众软件
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
A
About on SuperTechFans
B
Blog
月光博客
月光博客
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI

博客园 - ☆用心生活☆

BI-日期维度表-SQL SERVER SQL SERVER 2014 缺少Business Intelligence 解决办法 有未提交的事务。是否要在关闭窗口之前提交这些事务? 获取对象属性和值 日志记录 MSSQL之2005版本之后的行号分区妙用:row_number() over(PARTITION BY X1,X2.. ORDER BY X1,X2... ) IIS发布服务时候无法浏览,提示需要MIME注册 深浅COPY之我所理解,望拍砖交流。 windows developer preview 安装体验。 datagirdview进行数据统计 水晶报表之分页预留空白方便打印信纸 DataGridView数据呈现之行信息--HitTestInfo--用于选择呈现第一行 SQLMETAL使用LINQ自动代码生成工具命令残参数详解 aspnet_compiler.exe 命令参数详解 妙用MSSQL的REVERSE()反转函数显示文件路径的文件名称 2011年上半年总结 windows phone 7 学习初旅1 MSSQL自定义函数之数据格式化为千分位格式 MSSQL获取指定表的列名信息,描述,数据类型,长度 The product level is insufficient for component "Data Conversion 1"
MSSQL之自增列丢失ID找回--粗略解决方案
☆用心生活☆ · 2011-09-07 · via 博客园 - ☆用心生活☆

公告QQ群:124766907,若你是在.NET领域有独到见解,并有深厚的编程功力,在某一领域具有专长,欢迎本您入群,本群已经有好几位MVP,在SL,.NET,BS方面具有造诣的人欢迎进群。无4年以上经验者勿加,本群追寻高端顶级,多谢。

由于群里一个朋友说,自增列丢失的ID找回,有什么好的办法,故自己写了测试表和数据进行SQL分析,先做记录于此,貌似是可以通过的,只是若是删除的是最后的数据,这里就有BUG了,最后的找不到。比如我这表,我删除的是最后一条ID=11的,那ID=11的估计就打印不出来了。各位有何妙法?

--建表
CREATE TABLE [dbo].[tb](
[id] [int] IDENTITY(1,1) NOT NULL,
[username] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_tb] PRIMARY KEY CLUSTERED
(
[id] ASC
)
WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
--插入数据
insert tb values('wonder0')
insert tb values('wonder1')
insert tb values('wonder2')
insert tb values('wonder3')
insert tb values('wonder4')
insert tb values('wonder5')
insert tb values('wonder6')
insert tb values('wonder7')
insert tb values('wonder8')
insert tb values('wonder9')
insert tb values('wonder10')
insert tb values('wonder11')
delete from tb where id in (7,9)
select *from tb--查询自增ID丢失ID
declare @totalMax int
declare @step int
declare @temp int
declare @final int
set @step=0
SELECT @totalMax= max(id) from tb
while @step<@totalMax+1
begin
select @temp=id from tb where id=@step
if(@step<>@temp)
print @step
set @step=@step+1
end