CREATE TABLE DefectMember (
       InspectID            char(20) NOT NULL,
       ComponentID          char(9) NOT NULL,
       PRIMARY KEY NONCLUSTERED (InspectID, ComponentID), 
       FOREIGN KEY (InspectID)
       REFERENCES Inspect  (ID) On delete cascade On Update Cascade, 
       FOREIGN KEY (ComponentID)
       REFERENCES Component (ComponentID) On delete cascade On Update Cascade
)
--级联reference两个表可以的
examplecreate table 主表1
(商品编号 varchar(20) not null  PRIMARY KEY CLUSTERED ,
商品名称 varchar(20) UNIQUE NONCLUSTERED ,
数量 int
)
create table 主表1
(商品编号 varchar(20) not null  PRIMARY KEY CLUSTERED ,
商品名称 varchar(20) UNIQUE NONCLUSTERED ,
数量 int
)
create table 次表 
(商品编号 varchar(20) not null ,  
商品名称 varchar(20) not null
primary key ( 商品编号,商品名称 )
FOREIGN KEY (商品编号) REFERENCES 主表 (商品编号) 
 ON DELETE  CASCADE  ON UPDATE CASCADE ,
 FOREIGN KEY ( 商品名称) rEFERENCES 主表1 (商品编号) 
 ON DELETE  CASCADE  ON UPDATE CASCADE ,
供应商 varchar(20) 
)insert 主表 select '003','aa',77insert 主表1 select '104','bb',17insert 次表 select '003','104','y'update 主表1 set 商品编号='105'update 主表 set 商品编号='004'
select * from 次表

解决方案 »

  1.   

    --第一个是
    create table 主表
    (商品编号 varchar(20) not null  PRIMARY KEY CLUSTERED ,
    商品名称 varchar(20) UNIQUE NONCLUSTERED ,
    数量 int
    )
      

  2.   

    To:happydreamer
    谢谢您的指点!
    但是您并未解决我的问题,由于建立外键出错导致语句不能成功。
    需要补充说明的是所涉及的几个表的关系:
    DefectMember表的两个父表Inspect表、Component表 有一个共同的父表B。我怀疑是否多条路径就是指这个。
    烦请您再次指点,不胜感激!To OpenVMS:
    可以详细一点吗?我看不太明白。
    谢谢!