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 :

[SQL Server 2000]Update avec case


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut [SQL Server 2000]Update avec case
    Bonjour à tous,

    j'ai le petit probleme suivant :
    J'ai une table contenant des sociétés, une table contenant des personnes, et une table de lien société-personne.
    Je dois, lors d'une fusion de sociétés, récupérer toutes les personnes de la société source et les rattacher à la société master.
    J'ai dans ma table de lien une colonne SoftDel qui est à NULL si le lien est actif, à 2 si le lien est inactif (soft delete)

    Donc en gros je dois faire quelque chose comme :
    Chercher dans la table societe_personne tous les liens entre personnes et société_source et remplacer société_source par société_master, sauf si la personne est deja reliée par ailleurs à société_master, dans ce cas on passe SoftDel à 2, c'est à dire qu'on desactive la relation.

    Donc ca donnerait un genre d'update de masse où on fait pour toutes les personnes :
    -soit societe_personne.societe=@master
    -soit societe_personne.SoftDel=2

    (selon que la personne et deja liée ou non à la société master.)

    where societe_personne.societe=@source

    Je n'arrive pas du tout à formuler mon Update : /
    je m'embrouille avec mon CASE (ou IF ?)

    Pouvez vous me mettre sur la voie ?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    tu devrais passer par un curseur où tu liste tous les personnes avec leur societe
    Puis tu bloucle avec un while dessus où tu traite l'affectation des societe au personnes en faisant les inserts.

    Shakta

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Oui mais je voulais éviter le curseur, aucun moyen avec un mass-update ? ca me paraît plus propre et plus efficace non ?

  4. #4
    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,

    Malheureusement ta question n'est pas très claire, en tout cas pour moi. As-tu déjà un bout de code fait ?
    De ce que je comprends, ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE dbo.societe_personne
    SET SoftDel = 2
    WHERE Societe = @Master
     
    UPDATE dbo.societe_personne
    SET Societe = @Master
    WHERE Societe <> @Master
    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

Discussions similaires

  1. [SQL SERVER 2000] UPDATE avec jointure
    Par Jsh dans le forum Développement
    Réponses: 2
    Dernier message: 23/01/2009, 10h08
  2. [SQL Server 2000] SELECT avec CASE et GROUP BY
    Par strat0 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/03/2008, 18h45
  3. [SQL Server 2000] requête avec le nom de la table dynamique
    Par insane_80 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/12/2006, 17h57
  4. [SQL Server 2000]Probleme avec les dates !
    Par ChristopheOce dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/10/2006, 15h58
  5. sql server 2000 installation avec amd 64
    Par rouchederoche dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/10/2006, 09h39

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