我正在使用SQL Server Management Studio,并且希望使用其他值更改表行的自动增量主键值。SQL Server Management Studio在打开表进行编辑后,当然会将所有行的此字段显示为灰色。
有可能吗?我想使用我们错误删除的行号,因此它是有效的(与其他主键值没有冲突),最重要的是,添加到数据库中的下一行应该有一个完整的自动增量值。
谢谢。
编辑:此行与此主键上其他表记录的链接丢失不是问题。我们可以手动恢复它。
发布于 2013-09-19 16:13:06
不一定推荐,但请在要更改编号的位置插入一行的副本,但要使用所需的ID:
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将自动使用新插入的值作为当前标识值。
https://stackoverflow.com/questions/18888973
复制相似问题