这可能是一个愚蠢的问题,但为什么我不能将Identity Specification或(Is Identity)从“否”更改为“是”?
这可能是一个愚蠢的问题,但为什么我不能将Identity Specification或(Is Identity)从“否”更改为“是”?
检查您的列数据类型。
如果它是varchar
,则无法更改标识列。
要更改标识列,它应该具有int
数据类型。
无法更改现有表中列的IDENTITY属性。你可以添加一个具有IDENTITY属性的新列,删除旧列,然后使用旧列的名称重命名新列。
当然,对于某些人来说,接下来发生的事情是他们不喜欢新列出现在列列表的“末尾”(即使您不应该关心列的位置 - 您应始终使用它们的名称)。在这种情况下,您需要在更高的级别上执行相同的技巧-创建一个新表(已更改列定义),将数据从旧表复制到新表,删除旧表,然后重命名新表。
我认为SSMS仍然试图假装这是可能的,通过在幕后执行第二个技巧。
同时检查确保该列上没有默认值或绑定。
移除默认值或绑定。
继Damien_The_Unbeliever上面的评论后,您可以在Visual Studio的设计界面中编辑列顺序。
我已成功完成此操作。要确认,步骤如下:
nchar
更改为int
。此外,我需要刷新我的数据库服务器连接才能使其正常工作。
我认为首先您必须勾选(isIdentity)复选框,然后才能勾选身份规范复选框。