使用复合键+外键创建表作为复合键

我在SQL Server Compact中创建数据库时遇到问题 我基本上有5张桌子(CentreDeCout,Profil,Groupe,CCProfilPivot,CCProfilGroupePivot) CentreDeCout将NomCC作为主键 Profil以NomProfil为主键 CCProfilPivot将NomCC和NomProfil作为主键(引用CentreDeCout和Profil主键) Groupe将NomGroupe作为主键 我需要CCProfilGroupePivot将CCprofilPivot和NomGroupe的主键作为其主键。 所以主键是NomCC,NomProfil和NomGroupe。 NomCC和NomProfil将取自CCProfilPivot和 来自Groupe的NomGroupe 这就是我做到的
  
CREATE TABLE CentreDeCout(
NomCC nvarchar(100) primary key
)

CREATE TABLE Profil(
NomProfil nvarchar(100) primary key
)

CREATE TABLE Groupe(
NomGroupe nvarchar(100) primary key
)

CREATE TABLE CCProfilPivot(
NomCC nvarchar(100) references CentreDeCout(NomCC),
NomProfil nvarchar(100) references Profil(NomProfil),
PRIMARY KEY(NomCC,NomProfil)
)


CREATE TABLE CCProfilGroupePivot(
NomCC nvarchar(100) references CCProfilPivot(NomCC),
NomProfil nvarchar(100) references CCProfilPivot(NomProfil),
NomGroupe nvarchar(100) references Groupe(NomGroupe),
PRIMARY KEY (NomCC,NomProfil,NomGroupe)
)
最后一个create table给出了这个错误 SQL Exercution错误。 Exercuted SQL语句:CREATE TABLE CCProfilGroupePivot( NomCC nvarchar(100)引用CCProfilPivot(NomCC), NomProfil nvarchar(100)引用CCProfilPivot(NomProfil), NomGroupe nvarchar(100)引用了Groupe(NomGroupe), 主要关键(NomCC,NomProfil,NomGroupe) ) 错误源:SQL Server Compact ADO.Net数据提供程序 错误消息:引用的表必须具有主键或候选键。[FK Name = FK_CCProfilGroupePivot__00000000000000D7] 谁能帮帮我吗? 谢谢 Gibit     
已邀请:
您必须同时引用复合键的两列。
CREATE TABLE CCProfilGroupePivot(
  NomCC nvarchar(100) not null,
  NomProfil nvarchar(100) not null,
  NomGroupe nvarchar(100) references Groupe(NomGroupe),
  PRIMARY KEY (NomCC,NomProfil,NomGroupe),
  foreign key (NomCC, NomProfil) 
    references CCProfilPivot (NomCC, NomProfil)
);
    

要回复问题请先登录注册