IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Procédure mettre à jour plusieurs lignes


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 29
    Points : 31
    Points
    31
    Par défaut Procédure mettre à jour plusieurs lignes
    J'ai une table avec la structure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Id(Auto)  NumListe(int) Libelle(varchar 40) OrdreAffichage(int)
    1               1               lib1                      1
    2               1               lib2                      3
    3               1               lib3                      4
    4               1               lib4                      2
    5               2               lib5                      2
    6               2               lib6                      1
    7               1               lib7                      5
    Je voudrai faire une procédure stockée la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     CREATE PROCEDURE Deplacer @id Int, @ordre int AS
     
     UPDATE [Menu]
     SET [OrdreAffichage]=@ordre
     where [Id]=@id
     
     .....
    mais avant le update je voudrais décaler la valeur "OrdreAffichage" des autres lignes qui ont le meme numero de liste afin qu'il n'y ai pas deux numéro identique d'affichage pour le n° de liste

    mais là je séche

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Essaie qqch comme ceci (peut-être à adapter, je n'ai pas pris le temps de réfléchir à tous les cas).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE m
    SET OrdreAffichage = CASE 
    		WHEN m.OrdreAffichage >= @ordre AND m.Id != @id THEN m.OrdreAffichage + 1
    		WHEN m.Id = @id THEN @ordre
    		ELSE m.OrdreAffichage
    	END
    FROM Menu m
    JOIN Menu m1 ON m.NumListe = m1.NumListe
    WHERE m1.Id = @id
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 29
    Points : 31
    Points
    31
    Par défaut
    Je ne savais pas que l'on pouvais utiliser un case comme cela je teste cela et je vous tiendrai informer.

Discussions similaires

  1. [CakePHP] Mettre a jour plusieurs lignes d'un modèle
    Par Poulain dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/10/2014, 18h35
  2. [MySQL] Mettre à jour plusieurs ligne de la bdd en même temps
    Par subran dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2014, 12h27
  3. Mettre à jour plusieurs lignes d'une table
    Par beegees dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2008, 18h09
  4. [Procédure Stockée] mettre à jour plusieurs lignes
    Par PoichOU dans le forum Langage SQL
    Réponses: 15
    Dernier message: 16/05/2007, 16h18
  5. Mettre a jour plusieurs lignes d'une table
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/12/2005, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo