如何在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的代码就不写了,自己悟吧。
|