【发布时间】:2010-12-15 04:09:20
【问题描述】:
这可能是个愚蠢的问题,但为什么我不能将身份规范或(是否身份)从“否”更改为“是”?
【问题讨论】:
-
是的,这是一个愚蠢的问题。主键列未突出显示。
标签: sql-server
这可能是个愚蠢的问题,但为什么我不能将身份规范或(是否身份)从“否”更改为“是”?
【问题讨论】:
标签: sql-server
检查您的列数据类型。
如果是varchar,则不能更改标识列。
要更改标识列,它应该具有int 数据类型。
【讨论】:
您不能更改现有表中列的 IDENTITY 属性。您可以做的是使用 IDENTITY 属性添加一个新列,删除旧列,然后用旧列名称重命名新列。
当然,然后(对于某些人)发生的事情是他们不喜欢新列出现在列列表的“末尾”这一事实(即使您不应该关心列 - 您应该始终使用它们的名称)。在这种情况下,您需要执行相同的技巧,但在更高级别 - 创建一个新表(更改列定义),将数据从旧表复制到新表,删除旧表,然后重命名新表.
我认为 SSMS 仍然试图通过幕后的第二个技巧来假装它是可能的。
【讨论】:
您可以禁用“防止保存需要重新创建表的更改”选项 但 msdn 强烈不建议这样做。
要这样做,请转到:
工具 -> 选项 -> 设计器 取消选中:“防止保存需要重新创建表的更改”
【讨论】:
还要检查以确保列上没有默认值或绑定。
【讨论】:
删除默认值或绑定。
【讨论】:
根据上面 Damien_The_Unbeliever 的评论,您可以在 Visual Studio 的设计界面中编辑列顺序。
我已经成功地做到了。确认步骤如下:
【讨论】: