Procédure insertion ou mise à jour données d'un utilisateur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 258 fois - Téléchargée 16 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire

Commentaires

FENETRES
Messages postés
205
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
14 avril 2009
-
A mon humble avis, cette source devrait être requalifiée au niveau débutant.
cs_juanpa
Messages postés
13
Date d'inscription
samedi 4 novembre 2000
Statut
Membre
Dernière intervention
7 mars 2009
-
Salut,

voilà ça m'intéresse pour pouvoir transférer des membres d'un forum phpBB à un autre ....c'est possible ????
Je suis néophite, j'aurai quelques questions:
-c'est une requête à exécuter sur la base?
-ça marche si les bases sont sur des serveurs différents?

Merci.....

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.