Erro ao criar tabela Matricula

SQL Server

25/04/2017

BOM DIA.

Alguém sabe me dizer o porque que não consigo criar a tabela Matricula. Dá um erro.

Msg 1776, Level 16, State 0, Line 1
There are no primary or candidate keys in the referenced table 'TURMA' that match the referencing column list in the foreign key 'FK_MATRI_TURMA'.
Msg 1750, Level 16, State 0, Line 1
Could not create constraint or index. See previous errors.

Codigo.
create table Turma(
TNOME varchar(10) not null,
EspeCursoId int not null,
ANOID int not null,
AnoLectivoId int not null,
TrimestreId int not null,
CoordTurma int not null,
TurnoId int not null,
Sala varchar(10) not null,
Capac int not null,
Obs nvarchar(254) null,
CodOpe nvarchar(6) null,
DataCria datetime null,
CodAlt nvarchar(6) null,
DataAlt datetime null,
constraint PK_Turma_NOME primary key(TNOME,EspeCursoId,AnoLectivoId,trimestreId,ANOID),
constraint FK_Turma_Classe foreign key(EspeCursoId) references EspeCurso(EspeCursoId),
constraint FK_Turma_AnoLectivo foreign key(AnoLectivoId) references AnoLectivo(AnoLectivoId),
constraint FK_Turma_Trimestre foreign key(trimestreId) references trimestre(trimestreId),
constraint FK_Turma_ANO foreign key(ANOID) references ANOS(ANOID),
constraint FK_Turma_Prof foreign key(CoordTurma) references Professor(ProfessorId),
constraint FK_Turma_Turno foreign key(TurnoId) references Turno(TurnoId));


create table MATRICULA(
AluId int not null,
TNome varchar(10) not null,
ANOID int not null,
ANOLECTIVOID int not null,
TRIMESTREID int not null,
EspeCursoId INT NOT NULL,
NUMERO INT NULL,
CodOpe nvarchar(6) null,
DataCria datetime null,
CodAlt nvarchar(6) null,
DataAlt datetime null,
constraint PK_MATRICULA primary key(AluId,TNome,ANOID,ANOLECTIVOID,EspeCursoId),
constraint FK_MATRI_Alu foreign key(AluId) references Aluno(AlunoId),
constraint FK_MATRI_TURMA foreign key(TNome) references Turma(TNome),
constraint FK_MATRI_ANO foreign key(ANOID) references ANOS(ANOID),
constraint FK_MATRI_ANO_LECTIVO foreign key(ANOLECTIVOID) references ANOLECTIVO(ANOLECTIVOID),
constraint FK_MATRI_TRIMESTRE foreign key(TRIMESTREID) references TRIMESTRE(TRIMESTREID),
constraint FK_MATRI_EspeCurso foreign key(EspeCursoId) references EspeCurso(EspeCursoId),
);
Mauro Augusto

Mauro Augusto

Curtidas 0

Respostas

Jones Granatyr

Jones Granatyr

25/04/2017

Opa! Na tabela MATRICULA, você deve referenciar a chave primária da tabela TURMA para efetivar o relacionamento
GOSTEI 0
Mauro Augusto

Mauro Augusto

25/04/2017

boa tarde.
Já referencie todas as chaves primarias da tabela turma na tabela matricula
chaves primarias da tabela turma
constraint PK_Turma_NOME primary key(TNOME,EspeCursoId,AnoLectivoId,trimestreId,ANOID),

chaves primarias da tabela Matricula
constraint PK_MATRICULA primary key(AluId,TNome,ANOID,ANOLECTIVOID,EspeCursoId,trimestreId),
GOSTEI 0
POSTAR