您的位置:首页 > 数据库

如何在SQL中设置自动编号收藏

2008-11-10 09:40 232 查看
 如何在SQL中设置自动编号收藏

新一篇: SQL中truncate,delete,drop的异同点 | 旧一篇: CORBA Introduction

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}

如何在SQL中设置自动编号

关键词自动编号    SQL    设置    Nicholas    课程设计                                          
你创建一个表,把其中一个列(比如“ID”)的“标识列”属性设为“是”,然后设置它的种子(初始值)、递增量。比如你按默认设定种子为1、递增量为1,那么生成的ID序列就会是:1、2、3、4、……

在记录不是特别多(>1000万条)时,这个值是唯一的,也就是不会出现两者相同的情况。

但这样会有一个问题,比如你顺序生成了10条记录:

1、2、3、4、5、6、7、8、9、10

然后你删除了3号记录,这样剩下的记录就是:

1、2、4、5、6、7、8、9、10

如果你希望编号是从1累加到,中间不隔断,那你就要设定另一个非标识列比如“number”。然后在添加新记录时使用:

select @number=max(number) from tablename
insert tablename(number) values(@number+1)

------------------------
以上使用SQL语句示范,假定你使用存储过程操作数据库,如果你使用ASP,就这样:
psql="select max(number) as maxnumber from tablename"
rs.open psql,conn,3,3
maxnumber=rs("maxnumber")
将最大number值读出,然后加1,再用于你的数据添加语句。
------------------------

这样就可以手动生成编号了,然后在删除记录的时候这样写程序:

' 假定要删除的记录编号为@n

delete tablename where number=@n

update tablename set number=number-1 where number>@n

这样就会在删除记录后重新整理编号顺序了。同样是SQL语句示范,用ASP+SQL的代码就不写了,自己悟吧。

 发表于 @ 2008年01月17日 09:55:00|评论(0AddFeedbackCountStack("2048049"))|编辑

新一篇: SQL中truncate,delete,drop的异同点 | 旧一篇: CORBA Introduction

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: