首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改数据库行的主键值

更改数据库行的主键值
EN

Stack Overflow用户
提问于 2013-09-19 15:47:51
回答 1查看 35.2K关注 0票数 17

我正在使用SQL Server Management Studio,并且希望使用其他值更改表行的自动增量主键值。SQL Server Management Studio在打开表进行编辑后,当然会将所有行的此字段显示为灰色。

有可能吗?我想使用我们错误删除的行号,因此它是有效的(与其他主键值没有冲突),最重要的是,添加到数据库中的下一行应该有一个完整的自动增量值。

谢谢。

编辑:此行与此主键上其他表记录的链接丢失不是问题。我们可以手动恢复它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 16:13:06

不一定推荐,但请在要更改编号的位置插入一行的副本,但要使用所需的ID:

代码语言:javascript
复制
SET IDENTITY_INSERT aTable ON
GO

-- Attempt to insert an explicit ID value of 3
INSERT INTO aTable (id, product) VALUES(3, 'blah')       
GO

SET IDENTITY_INSERT aTable OFF
GO

然后删除包含不需要的编号的行(在更新所有FK引用之后)。

更多详细信息请访问:http://technet.microsoft.com/en-us/library/aa259221(v=sql.80).aspx

对于后代,为了澄清下面注释中的问题,只有当您插入一个大于当前最大值的值时,自动增量值才会受到影响。

引用链接文章:

如果插入的值大于表的当前标识值,SQL Server将自动使用新插入的值作为当前标识值。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18888973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档