关于 Sql Server 标识规范(自动编号)的问题?

问题是这样的:
现状:
数据库中有一张表student,第一列为id
表中已经有了一些数据
需求:
把id这列改成自动增加(我只知道标识规范可以,其他有什么方法吗?)
需要保持现有数据中的id不变

补充:id是主键,现在想以后添加数据的时候id自动增加

嗯,非常感谢wangzhiqing999朋友,也谢谢泪尽流殇,因为这些数据时自动从access数据库中导入进来的,student表中的数据和其他表中的数据有关联,所以不能改现有student中的id。谢谢各位的帮助

SQL Server
通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。

IDENTITY只能在如下情况下建立:
在创建表时创建新的IDENTITY列
在现有表中创建新的IDENTITY列
不能 把已经存在的列,修改为IDENTITY列

楼主要求 “需要保持现有数据中的id不变”
也就是不能删除 id 列, 然后再加一个 IDENTITY 的 id 列了。

那么可以考虑,另外建立一个表,里面就一行一列,存储一个 序列号。
初始值= student表的最大id.
student 上面,加一个触发器
当数据插入的时候,触发器读取那个 序列号的表,然后+1,再更新序列号表。
再更新student 表。

SQL Server 好像没有像 Oracle 的那种 序列号的东西。
如果有的话,就用个序列号来 替代掉那个 一行一列,序列号的表。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-08
是设主键,还是建立约束啊?
相似回答