Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PROCÉDURE INSERTION OU MISE À JOUR DONNÉES D'UN UTILISATEUR


Information sur la source

Description

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

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

Commentaires et avis

signaler à un administrateur
Commentaire de juanpa le 13/08/2007 23:11:14

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

signaler à un administrateur
Commentaire de FENETRES le 22/08/2007 17:55:44

A mon humble avis, cette source devrait être requalifiée au niveau débutant.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Curseur et procédure stockée erreur [ par humnanamouch ] Bonjour J'ai un problème quand je veux modifier ma procédure stockée sous sql server. J'ai l'erreur "L'utilisateur n'a pas l'autorisati Probleme de variable dans une procédure stockée [ par mastercatz ] Bonjour A chaque fois que j'essaye de créer ma procédure stockée j'obtient la même erreur (parmis d'autres): Msg 1087, Level 15, State 2, Procedure v Probleme de variable dans une procédure stockée [ par mastercatz ] Bonjour A chaque fois que j'essaye de créer ma procédure stockée j'obtient la même erreur (parmis d'autres): Msg 1087, Level 15, State 2, Procedure v fonction qui retourne un curseur [ par fatou69 ] salut tout le monde, je suis en train de devellopez une fonction sous oracle qui permet de retourner un curseur et précisament une ou plusieurs lignes SQL Server : concatenation [ par aieeeuuuuu ] Bonjour, Je suis sous SQL server 2000, j'ai fait une procédure stockée qui prend deux paramétres. dans une autre procédure stockée, je veux appele Insertion de données Ascenseur dans base de donnée [ par ecolopolo ] Bonjour j'ai un problème avec ma base de donnée que je tente de créer... les informations de type ascenseur (ou <option....>..... Statistique [ par biiru ] Bonjours à tous,Une fois de plus je sollicite votre aide ^^En fait je dois faire une statistique d'un formulaire et je comptait la faire avec l'aide d CLAUSE LIKE + procédure stockée. [ par KC62 ] Bonjour a tous, voila j'ai un petit souci qui me pose de nombreux soucis car je n'arrive pas a le résoudre... Je souhaiterais éxécuté une procédure st créer une procédure stockée qui renvoie des données [ par bossun ] salut,je ne connais pas vraiment oracle. je voudrais créer une procédure stockée qui me renvoie des données pour des besoins spécifiques...dans sql se Condition sur insertion [ par Myke ] Bonjour à tous!J'utilise SqlServer 2000. J'ai une table avec plusieurs champ. Lorsqu'un utilisateur veut inserer un nouvel enregistrements je dois ver


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.