还有在表中,我实现自动编号,例如已经有7个编号,1,2,3,4,5,6,7。我删除了3后,我想后面的依次前移,变成1,2,3,4,5,6。这该怎么实现啊,谢谢!
试试看:
假定表:table_name, 自动编号的列:id
declare cursor_name cursor
local scroll
for
select id
from table_name
order by id asc
end
declare @id int
open cursor_name
if @@cursor_rows>=4
begin
fetch absolute 4 from cursor into @id
select top 5 *
from table_name
where id>=@id
end
close cursor_name
deallocate cursor_name
[此贴子已经被作者于2005-12-6 11:14:56编辑过]
谢谢两位。第一个问题我已经按照斑竹的方法解决了,谢谢,但是第二个问题还没解决,我想的是一个比较笨的方法,我让程序ID自己加,而不让服务器去实现,
int i=rs.getRow();//获得最后一行的行数
String[m][4]str...... //定义我要存入数据库的数据
for(int j=0;j<m;j++)
{
stmt.executeUpdate("insert into tab values(++i,'str[j][0]','str[j][1]','str[j][2]','str[j][3]'");
}
让数据接着最后一行的ID号连着,但这的前提是前面所有的必须是连续且紧靠的
删除的话 例如删除第M行
stmt.executeUpdate("delete from tab where ID=M");//删除M行
stmt.executeUpdate("update tab set ID=ID-1 where ID>M");//M行后面的开始前移
我是用JAVA连接的,谢谢各位,不知道我想的对不对