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

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

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

嗯,非常感谢wangzhiqing999朋友,也谢谢泪尽流殇,因为这些数据时自动从access数据库中导入进来的,student表中的数据和其他表中的数据有关联,所以不能改现有student中的id。谢谢各位的帮助
展开
 我来答
wangzhiqing999
2011-01-08 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3257万
展开全部
SQL Server
通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。

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

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

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

SQL Server 好像没有像 Oracle 的那种 序列号的东西。
如果有的话,就用个序列号来 替代掉那个 一行一列,序列号的表。
泪尽流殇
2011-01-08 · 超过18用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:58.7万
展开全部
是设主键,还是建立约束啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式