1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
ALTER PROCEDURE [dbo].[creer_personne_plusieurs_tables]
-- paramètres procédure
@Nom nchar(10), @Prenom nchar(10), @Tel varchar(50), @Metier nvarchar(50)
AS
--1er CAS : Metier connu et Nom connu : =ajouter un métier connu à 1 personne déjà connue.
IF EXISTS (SELECT Nom FROM Liste WHERE Nom=@Nom) AND EXISTS (SELECT Metier FROM Metier WHERE Metier=@Metier)
BEGIN
--insertion d'un nouveau couple ID_personne/ID_métier à la table personne_metier
INSERT INTO personne_metier (ID_personne, ID_metier)
SELECT l.ID_personne, m.ID_metier FROM Liste l, Metier m
WHERE
m.metier=@Metier and l.nom=@Nom
END
--2ème CAS : Metier connu et Nom inconnu
IF NOT EXISTS (SELECT Nom FROM Liste WHERE Nom=@Nom) AND EXISTS (SELECT Metier FROM Metier WHERE Metier=@Metier)
BEGIN
--insertion du nouveau nom dans la table Liste : création d'un ID correspondant.
INSERT INTO [Annuaire].[dbo].[Liste]
([Nom]
,[Prénom]
,[Téléphone])
SELECT
@Nom,@Prenom,@Tel
--insertion du nouveau couple d'ID (ID de la nouvelle personne et ID du métier déjà connu)
INSERT INTO personne_metier (ID_personne, ID_metier)
SELECT l.ID_personne, m.ID_metier FROM Liste l, Metier m
WHERE
m.metier=@Metier and l.nom=@Nom
END
--3ème CAS : Nom connu et Metier inconnu
IF EXISTS (SELECT Nom FROM Liste WHERE Nom=@Nom) AND NOT EXISTS (SELECT Metier FROM Metier WHERE Metier=@Metier)
BEGIN
--insertion du nouveau métier dans la table métier
INSERT INTO [Annuaire].[dbo].[Metier]
([Metier])
SELECT @Metier
--insertion du nouveau couple d'ID (métier/personne)
INSERT INTO personne_metier (ID_personne, ID_metier)
SELECT l.ID_personne, m.ID_metier FROM Liste l, Metier m
WHERE
m.metier=@Metier and l.nom=@Nom
END
--4ème CAS : Nom inconnu et métier inconnu
IF NOT EXISTS (SELECT Nom FROM Liste WHERE Nom=@Nom) AND NOT EXISTS (SELECT Metier FROM Metier WHERE Metier=@Metier)
BEGIN
--insertion du nouveau nom dans la table Liste : création d'un ID correspondant.
INSERT INTO [Annuaire].[dbo].[Liste]
([Nom]
,[Prénom]
,[Téléphone])
SELECT
@Nom,@Prenom,@Tel
--insertion du nouveau métier dans la table métier
INSERT INTO [Annuaire].[dbo].[Metier]
([Metier])
SELECT @Metier
--insertion du nouveau couple d'ID (métier/personne)
INSERT INTO personne_metier (ID_personne, ID_metier)
SELECT l.ID_personne, m.ID_metier FROM Liste l, Metier m
WHERE
m.metier=@Metier and l.nom=@Nom
END |
Partager