“tblEmployee”表 - 无法创建索引“PK_ tblEmployee _72C60C4A”。
无法在表 'tblEmployee' 中的可为空列上定义 PRIMARY KEY 约束。无法创建约束。请参阅以前的错误。
问问题
227 次
2 回答
0
这是因为您可能有第三列NULL
left checked
。或者可能是您正在更改此表,有数据并且您尝试创建的列在PK
某处具有空值。
请注意,在将列转换为 之前PK
,请确保它不为 null 并且具有unique values(in case of alteration)
于 2013-09-08T16:37:51.920 回答
0
该错误清楚地表明您正在尝试添加一个可为空的列(勾选“允许 Nulls”)作为不允许的主键的一部分。
您需要更改列的定义以不允许空值...但是,如果列中的任何值已经为 NULL,那么您将需要更新表以首先为它们提供一些值,然后您可以取消勾选“允许Nulls”并将此列添加为主键的一部分。
例如,假设您现有的键列是 EmployeeID,并且您想添加 DepartmentID 作为该键的一部分,但其中的值是 null 并且由于某种原因您无法删除表中的数据(尽管我个人建议您这样做,在表中没有数据的情况下更容易更改键和诸如此类的东西!)
- 更新员工设置 DepartmentID=row_number() over(按 EmployeeID ASC 排序)——例如
- 然后取消选中表设计器中的“允许空值”并保存(如果它不允许您保存,因为必须重新创建表才能保存它,然后转到工具->选项->设计器并取消选中“防止保存更改重新创建表”框。
- 最后将您的列添加到 PK 并保存表,然后您需要返回并将 DepartmentID 的实际值放入表中。
显然,当与其他 PK 列组合时,您选择更新列的任何值仍然需要产生唯一键......
于 2013-09-08T23:01:57.173 回答