2010-06-25 5 views
2

Après avoir reçu une très bonne correction de la part de la sucette floue, j'ai modifié mon code pour créer une instruction d'insertion pour chaque ligne de données. Voici le code que je suis entré dans:Essayer d'insérer correctement les données

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0001','Think Tank',NULL,'L0001') 
GO 

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0002','Creators',NULL,'L0002') 
GO 

INSERT DEPARTMENTS 
(Department_Id,Department_Name,Manager_Id,Location_Id) 
VALUES 
('D0003','Marketers',NULL,'L0003') 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0001','Joe','Blow',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0002','John','Doe',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0003','Sue','Happy',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0004','Tina','Turner',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0005','Ike','Turner',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0006','Big','Bird',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0007','Speedy','Gonzales',NULL,NULL,2010/06/25,NULL,NULL) 
GO 

Cependant, ce sont les messages d'erreur que je recevais:

Msg 547, Level 16, State 0, Line 1 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 547, Level 16, State 0, Line 2 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 547, Level 16, State 0, Line 2 
The INSERT statement conflicted with the FOREIGN KEY constraint "FK__DEPARTMEN__Locat__09DE7BCC". The conflict occurred in database "Final_Project", table "dbo.LOCATIONS", column 'Location_ID'. 
The statement has been terminated. 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 
Msg 206, Level 16, State 2, Line 2 
Operand type clash: int is incompatible with date 

Je ne vais pas faire la même erreur en omettant de répondre immédiatement à des solutions. Je ne savais pas que la vérification de la coche verte signifiait que la réponse était satisfaisante.

Merci pour toute aide

Répondre

2

Vous avez deux types différents de les erreurs.

La première est que vous violez une contrainte de clé étrangère. Il y a trois façons de résoudre ce:

  • Découvrez ce que la clé correcte doit être (par exemple en interrogeant la table LOCATIONS) et changer votre clé étrangère à la valeur correcte.
  • Insérez la ligne manquante dans le tableau LOCATIONS avant de l'insérer dans DEPARTMENTS.
  • Supprimer la contrainte (c'est probablement une mauvaise idée).

La deuxième erreur est plus simple - vous avez mal formaté votre date. Ça devrait être une chaîne.

'2010-06-25' 

La requête complète:

INSERT EMPLOYEES 
(Employee_Id,First_Name,Last_Name,Email,PhoneNumber,Hire_Date,Manager_ID,Department_Id) 
VALUES 
('E0001','Joe','Blow',NULL,NULL,'2010-06-25',NULL,NULL) 
+0

"• Supprimer la contrainte (c'est probablement une mauvaise idée)." Oui c'est le chemin de moindre résistance et presque toujours la pire chose que vous pourriez faire pour résoudre le problème. Il y a toujours une raison pour la contrainte, les supprimer parce qu'ils vous gênent est de garantir des problèmes d'intégrité des données. – HLGEM

+0

J'ai apporté une modification à la date incorrecte. Cependant, j'essaye de corriger l'erreur de contrainte. – getbruce

1

1) il n'y a pas de documents avec les LocationIDs donnés dans le tableau de localisation

2) vous devez citer les valeurs de date

+0

J'ai fait un changement à la date incorrecte. Cependant, j'essaye de corriger l'erreur de contrainte. – getbruce

+0

Merci pour votre aide – getbruce

0
  • Y at-il une contrainte FOREIGN KEY entre le ministère et l'emplacement. Si c'est le cas, l'insertion d'un département nécessite un emplacement existant. L'emplacement est lié au Département avec LOCATION_ID

  • syntaxe Horodatage doit être comme une chaîne '12/12/2010' non sans le « -signs

+0

J'ai apporté une modification à la date incorrecte. Cependant, j'essaye de corriger l'erreur de contrainte. – getbruce

Questions connexes