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

SQL Server创建表错误-可能导致循环或多个级联路径,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在尝试创建此活动表: 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),

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

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
)
但我得到了这个错误:

味精1785,第16级,状态0,第114行
在表“活动”上引入外键约束“fk_act_ser_id”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束

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

如果我设置了
fk\u act\u ser\u id
constraint
UPDATE NO ACTION
,则代码将无错误运行。但我想把它设置为更新级联


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

这里没有显示的都是表。有多种方法可以删除
活动
——其中一种方法有两条路径指向
活动
。例如,如果
服务
可以导致删除
员工
(或者
员工
删除可以删除
服务
)……或者其他一些删除路径。从给定的起始表到任何表,您只能有一个删除/更新路径。

我们还必须查看
服务
表的DDL。旁注:请不要使用
float
(也不要使用
real
double
)对于价格或费率信息,这些类型是出了名的不准确,往往成为舍入错误的受害者。对所有与货币相关的值使用
decimal(p,s)
!哦,好的。。谢谢:)