Erro ao criar tabela Matricula

25/04/2017

0

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

Responder

Posts

26/04/2017

Jones Granatyr

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

27/04/2017

Mauro Augusto

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),
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar