alter table add constraint fkname FOREIGN KEY (field) REFERENCES table2(...) on delete cascade

解决方案 »

  1.   

    定义外键,指定级联删除:ALTER TABLE tablename
    ADD CONSTRAINT constraint_name  FOREIGN KEY ( column [ ,...n ] )
                REFERENCES ref_table [ ( ref_column ) ]
                 ON DELETE  CASCADE 
                 ^^^^^^^^^主要是这里说明:ON DELETE {CASCADE | NO ACTION}指定当表中被更改的行具有引用关系,并且该行所引用的行从父表中删除时,要对被更改行采取的操作。默认设置为 NO ACTION。 如果指定 CASCADE,则从父表中删除被引用行时,也将从引用表中删除引用行。如果指定 NO ACTION,SQL Server 将产生一个错误并回滚父表中的行删除操作。如果表中已存在 ON DELETE 的 INSTEAD OF 触发器,那么就不能定义 ON DELETE 的CASCADE 操作。例如,在 Northwind 数据库中,Orders 表和 Customers 表之间有引用关系。Orders.CustomerID 外键引用 Customers.CustomerID 主键。如果对 Customers 表的某行执行 DELETE 语句,并且为 Orders.CustomerID 指定 ON DELETE CASCADE 操作,则 SQL Server 将在 Orders 表中检查是否有与被删除的行相关的一行或多行。如果存在相关行,那么 Orders 表中的相关行将随 Customers 表中的被引用行一同删除。反之,如果指定 NO ACTION,若在 Orders 表中至少有一行引用 Customers 表中要删除的行,则 SQL Server 将产生一个错误并回滚 Customers 表中的删除操作。