cette procédure a pour rôle de mettre à jour la table USER a partir d'un autre table ou vue
si l'utilisateur existe déja, on va rafraichir les Informations
si l'utilisateur n'existe pas, on va donc le créer
Source / Exemple :
CREATE PROCEDURE dbo.AddOrUpdateUser
AS
DECLARE
@MatriculeSalarie as nvarchar(50),
@NumSalarie as nvarchar(50),
@Nom as nvarchar(50),
@Prenom as nvarchar(50),
@Num_adherent as int,
@Situation_Familiale as nvarchar(50),
@Nb_Enfant as int,
@Categorie as nvarchar(50),
@Service as nvarchar(50),
@Famille_Categorie as nvarchar(50)
-- Utilisation d'un curseur pour parcourir tout les données
DECLARE
Curseur1 CURSOR FOR
SELECT DISTINCT MatriculeSalarie, SA_CompteurNumero, Nom, Prenom, Num_Adhesion, SituationFamille, NB_Enfant, Catégorie, Service
FROM VIEW_SAl_Information
WHERE (DateHist IS NULL) AND (hstDate_Famil IS NULL)
ORDER BY SA_CompteurNumero
OPEN Curseur1
FETCH NEXT FROM Curseur1 INTO @MatriculeSalarie , @NumSalarie , @Nom , @Prenom ,@Num_adherent , @Situation_Familiale ,@Nb_Enfant ,@Categorie , @Service
WHILE @@FETCH_STATUS = 0
BEGIN
IF exists(SELECT Matricule FROM dbo.Dossier_Personnel WHERE (dbo.Dossier_Personnel.Matricule = @MatriculeSalarie))
-- Dans cette partie, le Compte existe déja, on a donc juste besoin de rafraichir les Informations
BEGIN
UPDATE
dbo.Dossier_Personnel
SET
dbo.Dossier_Personnel.Nom = @Nom,
dbo.Dossier_Personnel.Prenom = @Prenom,
dbo.Dossier_Personnel.Num_adherent = @Num_adherent,
dbo.Dossier_Personnel.Situation_Familiale = @Situation_Familiale,
dbo.Dossier_Personnel.Nb_Enfant = @Nb_Enfant,
dbo.Dossier_Personnel.Categorie = @Categorie,
dbo.Dossier_Personnel.Service = @Service
WHERE
dbo.Dossier_Personnel.Matricule = @MatriculeSalarie
END
ELSE
-- Dans cette partie, le compte n'existe pas, on va donc le créer
BEGIN
INSERT INTO dbo.Dossier_Personnel
(Matricule,
NumSalarie,
Nom,
Prenom,
Num_adherent,
Situation_Familiale,
Nb_Enfant,
Categorie,
Service)
VALUES
(@MatriculeSalarie,
@NumSalarie,
@Nom,
@Prenom,
@Num_adherent,
@Situation_Familiale,
@Nb_Enfant,
@Categorie,
@Service)
END
FETCH NEXT FROM Curseur1 INTO @MatriculeSalarie , @NumSalarie , @Nom , @Prenom ,@Num_adherent , @Situation_Familiale ,@Nb_Enfant ,@Categorie , @Service
END
CLOSE Curseur1
DEALLOCATE Curseur1
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.