【问题标题】:Msg 547, Level 16, State 0, Line 1 (help please)消息 547,第 16 级,状态 0,第 1 行(请帮助)
【发布时间】:2018-02-03 15:24:11
【问题描述】:

我使用这些语句来添加约束或添加外键。

USE Kudler1_FF
ALTER TABLE Employee_Tbl
ADD FOREIGN KEY (JobTitle)
REFERENCE Job_Tbl (JobTitle)

还有这个:

Alter TABLE Employee_Tbl
ADD Constraint FK_JobTitle
FOREIGN KEY (JobTitle) 
REFERENCES Job_Tbl(JobTitle)

但现在我收到此错误:

消息 547,第 16 级,状态 0,第 1 行

ALTER TABLE 语句与 FOREIGN KEY 约束冲突 “FK_JobTitle”。数据库“Kudler1_FF”表中发生冲突 “dbo.Job_Tbl”,列“JobTitle”。

【问题讨论】:

  • 检查您的表是否已经有 JobTitle 的外键。
  • 你两个都运行了吗?他们做同样的事情,第一个只是给约束一个默认的 guid 类型名称。使用 SSMS UI 在对象资源管理器中展开您的表,然后在“键”下查找具有 guid 类型名称的表。更改您的表并删除该键,然后运行命名外键的第二条语句。

标签: sql sql-server sql-server-2008 foreign-keys


【解决方案1】:

在您创建约束或外键之前,表 Employee_Tbl 必须为空,因为数据库引擎将验证此表上存在的数据。如果表中已经有一些与 Job_Tbl 不匹配的数据,您将收到错误消息。希望对您有所帮助。

【讨论】:

    【解决方案2】:

    在将记录添加到父表中不存在该记录的子表时,您会收到此错误。插入记录时会发生这种情况。

    你的问题是一样的,子表Employee中已经有一些记录在父表Job_Tbl中不存在

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多