2011-05-08 3 views
3

Je crée une base de données d'étudiant dans sql server 2005 mais il me donne l'erreur concernant des clés étrangères s'il vous plaît vérifier quel est le problème en elle.Clé étrangère SQL Server

CREATE TABLE STUDENT 
(
STUDENT_REGNO INT NOT NULL PRIMARY KEY, 
STUDENT_FIRSTNAME VARCHAR(30) NOT NULL, 
STUDENT_LASTNAME VARCHAR(20) NOT NULL, 
STUDENT_FATHER_NAME VARCHAR(30) NOT NULL, 
STUDENT_EMAIL VARCHAR(20), 
STUDENT_MOBILE_NO VARCHAR(15), 
STUDENT_PHONE_NO VARCHAR(15), 
STUDENT_ADDRESS VARCHAR (40), 
DEPARTMENT_ID INT CONSTRAINT DEP_1 FOREIGN KEY 
REFERENCES DEPARTMENT(DEPARTMENT_ID), 
ACADEMIC_ID INT CONSTRAINT ACDEMIC FOREIGN KEY 
REFERENCES ACADEMIC(ACADEMIC_ID), 
CLASS_NAME VARCHAR(20) CONSTRAINT CLASS_1 FOREIGN KEY 
REFERENCES CLASS(CLASS_NAME) 
) 
CREATE TABLE FACULTY 
(
FACULTY_ID INT NOT NULL PRIMARY KEY, 
FACULTY_NAME VARCHAR(20) NOT NULL, 
FACULTY_FATHER_NAME VARCHAR(30) NOT NULL, 
FACULTY_EMAIL VARCHAR(20), 
FACULTY_ADDRESS VARCHAR(40) NOT NULL, 
FACULTY_MOBILE_NO VARCHAR(30), 
FACULTY_PHONE_NO VARCHAR(20), 
FACULTY_QUALIFICATION VARCHAR(20), 
DEPARTMENT_ID INT CONSTRAINT DEPARTEMNT_2 FOREIGN KEY 
REFERENCES DEPARTMENT(DEPARTMENT_ID), 
ACADEMIC_ID INT CONSTRAINT ACADEMIC_1 FOREIGN KEY 
REFERENCES ACADEMIC(ACADEMIC_ID) 
) 
CREATE TABLE USER1 
(
USERNAME VARCHAR(20) NOT NULL, 
USER_PASSWORD VARCHAR(6) NOT NULL, 
USER_TYPE VARCHAR(20) NOT NULL, 

) 
CREATE TABLE DEPARTMENT 
(
DEPARTMENT_ID int NOT NULL PRIMARY KEY, 
DEPARTMENT_NAME VARCHAR(20) NOT NULL, 
DEAPRTMENT_OFFICE_NO VARCHAR(20), 
) 
CREATE TABLE CLASS 
(
CLASS_NAME VARCHAR(20) NOT NULL, 
CLASS_STRENGTH INT NOT NULL, 
) 
CREATE TABLE ANNOUNCMENT 
(
ANNOUNCMENT_ID int NOT NULL PRIMARY KEY, 
ANNOUNCMENT_DESCRIPTION VARCHAR(50), 
ANNOUNCMENT_TITLE VARCHAR(45) 
) 
CREATE TABLE FORUM 
(
FORUM_ID int NOT NULL PRIMARY KEY, 
FORUM_NAME VARCHAR(35) NOT NULL, 
FORUM_DESCRIPTION VARCHAR(333), 
FORUM_DISCUSSION VARCHAR(22), 
POSTED_BY VARCHAR(34) 
) 
CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT) 
REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE) 
REFERENCES COURSE(COURSE_ID) 
) 
CREATE TABLE COURSE 
(
COURSE_NAME VARCHAR(20) NOT NULL, 
COURSE_CREDIT_HR INT NOT NULL, 
COURSE_DESCRIPTION VARCHAR(99), 
) 
CREATE TABLE TERM 
(
TERM_START_DATE DATETIME NOT NULL, 
TERM_END_DATE DATETIME NOT NULL, 
student_regno int CONSTRAINT STUDENT_2 FOREIGN KEY(STUDENT) 
REFERENCES STUDENT(STUDENT_REGNO) 
) 
CREATE TABLE PREVIOUS_ACADEMIC_INFO 
(
ACADEMIC_ID int NOT NULL PRIMARY KEY, 
DEGREE_DESCRIPTION VARCHAR(50), 
CERTIFICATION VARCHAR(30), 
DURATION DATETIME 
) 
CREATE TABLE TEACHER_COURSE 
(
AREA_OF_SPECILIZATION VARCHAR(30), 
faculty_id int CONSTRAINT FACULTY_1 FOREIGN KEY(FACULTY) 
REFERENCES FACULTY(FACULTY_ID) 
) 

et première erreur est

Msg 1769, niveau 16, état 1, ligne 65
Clé étrangère Références 'STUDENT_5' colonne non valide 'ÉTUDIANTS' dans tableau faisant référence à la 'classe'.
Msg 1750, niveau 16, état 0, ligne 65
Impossible de créer une contrainte. Voir les erreurs précédentes

+0

Des détails d'erreur seraient utiles. –

+1

Vous voulez que les gens lisent votre code, mais vous ne publiez pas l'erreur? comment est-ce raisonnable? –

+0

@ Jay @ Mitch Blé: erreur mentionnée ..... dites-moi simplement si les clés étrangères sont déclarées correctement ou non. – james

Répondre

4
CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT) REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE) 
REFERENCES COURSE(COURSE_ID) 
) 

devrait être

CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT_REGNO) REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE_ID) REFERENCES COURSE(COURSE_ID) 
) 

Et ainsi de suite. Bien que ce ne soit pas obligatoire et que vous puissiez simplement le faire

CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 REFERENCES COURSE(COURSE_ID) 
) 
+0

Msg 1767, niveau 16, état 0, ligne 1 La clé étrangère 'DEP_1' référence la table non valide 'DEPARTMENT'. Msg 1750, niveau 16, état 0, ligne 1 Impossible de créer une contrainte. Voir les erreurs précédentes. – james

+0

MAINTENANT CES ERREURS VIENNENT .... – james

+0

Vous devez également créer les tables dans le bon ordre. –

Questions connexes