如何将列更改为 IDENTITY 列并保留数据? [英] How to change a column to an IDENTITY column and preserve the data?

查看:29
本文介绍了如何将列更改为 IDENTITY 列并保留数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一列是 IDENTITY(1,1).所有行均已连续编号.我没有添加或删除任何行.我删除了此列上的标识属性.现在,我想要它回来.我想我可以将其重置为现有表中种子 = 最大数字的身份.

I had a column which was IDENTITY(1,1). All rows had been numbered consecutively. I did not add or remove any rows. I removed the identity property on this column. Now, I want it back. I think i can reset it to identity with seed = biggest number in existing table.

如果我这样做会不会有什么问题?

Could any problems arise if I do this ?

推荐答案

来自 MSDN SQL Server 论坛 - 您有 2 个选项:

From MSDN SQL Server forum - You have 2 options:

  1. 创建一个具有身份的新表 &删除现有表
  2. 创建一个带有身份的新列 &删除现有列.

*但是当这些列有任何约束/关系时要特别小心

*But take special care when these columns have any constraints / relations

MSDN 文档中所述 关于在部署和架构更新期间保留数据的注意事项:

As stated in MSDN documentation about considerations for preserving data during deployment and schema Updates:

更改表上标识列的属性,例如标识种子 - 需要数据移动",并且在某些情况下,它可能会在执行同步期间导致数据丢失.

Changes to properties of an identity column on a table, such as the identity seed - "Requires data motion" and it can, in some cases, cause data loss during its execution of the synchronization.

在这种情况下的建议:如果部署或更新脚本包含这些类型的更改,您可能需要手动修改它以保留数据"

这篇关于如何将列更改为 IDENTITY 列并保留数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆