求一条sql 语句(刚学sql语言)

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:59:49
一个表的主键 id 为1,2,3,5,6,7,8,10...依次增长的,为了表的id 能充分利用,用一条select 语句查出没有使用的id 号,例如id 为 1,2,3,5,6,7,9,10中有4,和8,没有使用,查处4,8.

表结构:create table A(
id int primary key,
b varchar(20),
c varchar(50)
)
就是 一条 select 语句,不要存储过程,不用游标,不用视图,不用 pl/sql 语句

有没有工作 三年以上的人啊??

declare @i int,@ID int
declare mycur cursor for(select ID from dbo.TABLE)
set @i=1
open mycur
fetch next from myCur into @ID -----做一个FETCH开始取你的主键
while @@fetch_status = 0 and @i<10000 -----取到值就循环
begin
if @ID<>@i -----只要取到值和累加值不等
begin
insert into TABLE(ID,B,C)values(@i,'','') ------插一列新值,主键值为累加值
set @i=@i+1 -----累加值做累加
end
fetch next from myCur into @ID
end
close myCur
deallocate myCur
RETURN

你是这个意思吗?把缺的列都添上?不过你ID要是索引的话应该是插入不了的。

用一条SELECT语句?你知道SELECT语句是什么意思吗?你知道什么才是SELECT,什么时候才可以SELECT吗?
select只能取出来有的,或者判断存在或者不存在。你怎么能SELECT出不存在的?常识错误吧?

程序中可以实现

我也在想这个问题
ID 是自动增长的 如果以后想删除某个ID
我想应该可以用Update 将>=这个ID 的ID全部前去一 ,当然我还没试过

如果表中已经有好多数据了,就和一楼说的用循环
for i=1 i<N i++
select id from A where id=i
如果结果为空,那么输出i

我晕,用for!~有没有搞错! 吧主键id数据类型设置为int,然后设置为标识列种子为一,递增为一,想要没有4和八,就在标识列到4的时候删掉那列就行了