-2

“tblEmployee”表 - 无法创建索引“PK_ tblEmployee _72C60C4A”。
无法在表 'tblEmployee' 中的可为空列上定义 PRIMARY KEY 约束。无法创建约束。请参阅以前的错误。

4

2 回答 2

0

这是因为您可能有第三列NULLleft 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 回答