码迷,mamicode.com
首页 > 数据库 > 详细

sql server 怎么为一个已经存在数据的table, 添加一个自增的主键列?

时间:2019-09-27 13:45:33      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:column   image   san   key   cluster   http   str   config   file   

情况描述 如果你符合下面的情况, 可以参考本文的解决方案

  1. 你已经有了一个DB, 并且DB中也有了不少table, 但是table最开始的时候没有设置主键. 数据存入了一部分后, 突然想到为这个table添加主键并且自增的column. 并且不想丢失这部分数据时,,,
  2. 你的db是自己建的, 但是table以及table中的数据是通过其他的db export->import过来的, 此时新的db中的import进来的table可能是没有主键的, 即使import过来的列中包含id这种列,,,

网间对于这个问题存在两种答案, 一种是可以, 一种是不可以. 我只说可以的. 剩下的就是不可以.

  • 首先必须删除你这个table已经存在的主键约束, 因为这样才能删除这个表已存在的主键.
  • 然后新增一个主键, 这时需要将其设置成为自增的序列

技术图片

configinfo表中有id为主键的主键约束, 我们看一下属性:

技术图片

将 is identity 修改为 yes, identity increment 修改为 1 (true)

技术图片

点击save 报错:

技术图片

报错内容已经很明确. 接下来怎么解决, 就是删除 id这个column, 重新add id column时, 就设置成自增的序列.

ALTER TABLE FilePublishInfoes DROP COLUMN Id

ALTER TABLE FilePublishInfoes ADD Id BIGINT IDENTITY CONSTRAINT PK_FilePublishInfoes PRIMARY KEY CLUSTERED

sql server 怎么为一个已经存在数据的table, 添加一个自增的主键列?

标签:column   image   san   key   cluster   http   str   config   file   

原文地址:https://www.cnblogs.com/it-dennis/p/11597443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!