| 12
 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