如何在SQL中设置自动编号收藏
2008-11-10 09:40
232 查看
如何在SQL中设置自动编号收藏
你创建一个表,把其中一个列(比如“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
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
相关文章推荐
- sql如何设置自动编号列的SEED
- 如何在SQL中设置自动编号
- SQL 数据库 学习 032 identity的用法 --- 如何设置主键自动增长(用户不需要为identity修饰的主键赋值)
- Altium Designer如何设置元件自动编号解决编号冲突
- PL/SQL如何设置主键自动递增
- Altium Designer如何设置元件自动编号解决编号冲突
- SQL 如何设置自动标识增量,查看本机实例名
- 如何用JET SQL DDL创建自动编号GUID字段
- SQL2005中设置自动编号字段
- 如何设置WORD中图片自动编号
- sql 设置主键自动加1
- Access转成Sql 2008步骤,同时解决自动编号问题,主键,id数值不重置。
- 如何自动设置网页中meta节点keywords属性-【SEO】
- 如何让它开机自动设置?
- sql 设置主键自动加1
- 如何在server上手动设置SQL Server CE
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher
- 如何设置MFC中EditBox为自动换行
- 如何使用SQL语句查询连续编号中缺失的编号?
- 如何把word中的多级编号中的题注“图一.1”自动变成“图1.1”