SQL Server创建表错误 - 可能导致周期或多个级联路径



我正在尝试创建此活动表:

CREATE TABLE activity 
(
    activity_id int,
    description varchar(300),
    start_date date,
    due_date date,
    plannes_price float,
    hours_worked int,
    billing_rate float,
    actual_price float,
    status varchar(50),
    employee_id int,
    date_completed date,
    service_id int,
    CONSTRAINT pk_activityId PRIMARY KEY (activity_id),
    CONSTRAINT fk_act_emp_id FOREIGN KEY (employee_id) 
         REFERENCES employee(employee_id) 
         ON UPDATE CASCADE ON DELETE SET NULL,
    CONSTRAINT fk_act_ser_id FOREIGN KEY (service_id) 
         REFERENCES service(service_id) 
         ON UPDATE CASCADE ON DELETE NO ACTION
)

但是我得到了这个错误:

msg 1785,16级,状态0,第114行
在表"活动"上引入外键约束" FK_ACT_SER_ID"可能会导致周期或多个级联路径。在删除no操作或更新no操作上指定或修改其他外键约束。

msg 1750,16级,状态0,第114行
无法创建约束或索引。请参阅以前的错误。

如果我设置了fk_act_ser_id约束UPDATE NO ACTION,则代码将在没有错误的情况下运行。但是我想设置它是更新级联。

有人知道如何解决此问题吗?

这一切都与此处未显示的表有关。有多种删除activity的方法 - 其中一种方法有两种通往activity的途径。例如,如果service可以导致删除employee(或employee删除可以删除service)或其他一些删除路径。您只能从给定的启动表到任何表的删除/更新路径。

最新更新