Bonsoir à tous,
Je suis à la recherche d'un exemple concernant les relations d'héritage. Je suis tomber sur le petit guide de Transact SQL (v2000) de SQLpro (super) J'ai donc essayé de mettre en oeuvre l'exemple présenté (septieme exemple).
J ai donc créer :
- Les tables suivantes :
<B>create table PERSONNE_PRS (
PRS_ID int IDENTITY NOT NULL PRIMARY KEY,
PRS_NOM char(32) NOT NULL,
PRS_PRENOM VARCHAR(16))
create table EMPLOYES_EMP (
PRS_ID int NOT NULL PRIMARY KEY REFERENCES PERSONNE_PRS(PRS_ID),
EMP_MAT VARCHAR(8))</b>
-La vue suivante:
<b>CREATE VIEW V_EMP
AS
SELECT P.PRS_ID,P.PRS_NOM,P.PRS_PRENOM,E.EMP_MAT
FROM PERSONNE_PRS P INNER JOIN EMPLOYES_EMP E
ON P.PRS_ID=E.PRS_ID</b>
-Et le trigger
<b>CREATE TRIGGER TGR_INS_EMP
ON V_EMP
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO PERSONNE_PRS (PRS_NOM,PRS_PRENOM)
SELECT PRS_NOM,PRS_PRENOM FROM INSERTED
INSERT INTO EMPLOYES_EMP (PRS_ID,EMP_MAT)
SELECT @@IDENTITY,EMP_MAT FROM INSERTED
END</b>
Seulement lorsque je remplis ma vue, j ai le droit à un message d'erreur :
"Impossible d'inserer la valeur null dans la colonne 'PRS_ID' de la table 'EMPLOYES_EMP' cette colonne n'accepte pas les valeurs nulles. INSERT à échoué".
Si je comprends bien, @@IDENTITY vaut null ici.
Comment me sortir de cette histore ?
Merci d'avance !
A +
Partager