如何查询已删除的主键,求简易方法

scate 2007-09-26 07:27:02
有个客户表,主键“编号”是以B0001开头,B是表示客户级别,因为一些原因,有些客户已经被除名或者级别变了而移走了记录,现在要查询在这个表里到底消去了几个客户记录,已经他们空出来的编号,其中末尾编号未知,不考虑最末尾编号的客户曾经消去的情况
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
scate 2007-09-27
  • 打赏
  • 举报
回复
是B001、B0002这样顺延的,现在要回收号码
kk19840210 2007-09-27
  • 打赏
  • 举报
回复
测试数据
--------
create table #test( id varchar(5) primary key)
insert into #test
select 'b0001'
union all
select 'b0002'
union all
select 'b0003'
union all
select 'b0011'

SQL语句
----------
declare @t table (id int identity(1,1),c varchar(5))
insert into @t(c)
select top 9999 '0' from sysobjects a,syscolumns b
update @t set c='b'+right('0000'+convert(varchar(4),id),4)
select * from @t where c not in (select id from #test) and c<=(select max(id) from #test)


结果
-------
id c
----------- -----
4 b0004
5 b0005
6 b0006
7 b0007
8 b0008
9 b0009
10 b0010

(所影响的行数为 7 行)
dawugui 2007-09-26
  • 打赏
  • 举报
回复
主键“编号”是以B0001

编号有规律吗?如B0001,B0002........
如果是这样,编写个程序逐一判断即可.

如果没有规律,查询日志,看看对这个表的删除情况.

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧