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

Développement SQL Server Discussion :

Procédure stockée While qui ne boucle pas [2012]


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut Procédure stockée While qui ne boucle pas
    Bonjour,

    voici mon code ci-dessous en TSQL qui ne s’exécute pas.

    Qu'est ce qui cloche? Besoin d'aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    If @nNew = @nOld 
    BEGIN
          --quitter la procedure
    END
       ElseIf @nNew > @nOld Then
    BEGIN
     
         SET @nNP = @nOld
         SET @nOld = @nNew
         SET @nNew =@ nNP
         SET @n = 0
    END
     
       Else
    BEGIN
     
         SET @n = 1
       End 
     
    SELECT * FROM tBat
     
     
    WHILE (SELECT * FROM tBat WHERE unite = @nUn AND npers BETWEEN @nNew AND  @nOld ORDER BY npers)>0
    UPDATE tBat SET npers = @nNP 
     
    SET @nNP = @nNP + 1
    END
    SELECT * FROM tBat
    Les paramètres sont passés par valeur
    Merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 338
    Points : 39 726
    Points
    39 726
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Faire une procédure stockée avec des instructions select * est très dangereux, charge inutilement le réseau et est interdit sur de nombreux sites

    A quoi sert la colonne NPERS, j'ai l'impression qu'il s'agit d'attribuer un rang que vous pourriez obtenir par une fonction de fenêtrage, auquel cas cette colonne est inutile, et vous éviterez cet update ligne à ligne peu performant.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    Merci. Concernant le rang, c'est ce que je veux faire.
    Est ce que vous pouvez m'aider?

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 187
    Points : 75
    Points
    75
    Par défaut
    Bonjour,

    j'ai finalement résolu mon problème tout seul grâce à DENSE_RANK() OVER.
    Voilà ce que j'ai fait pour attribuer un rang:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT batiment, unite, DENSE_RANK() OVER (ORDER BY npers ASC) AS 'Rang' FROM tBat WHERE unite = @nUn
    J'espère que cela pourra aider ceux qui rencontreront ce même problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle do loop while qui ne fonctionne pas
    Par nahamed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 11h52
  2. Une boucle While qui ne fonctionne pas
    Par seremei dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2012, 11h33
  3. Fonction While {} qui ne fonctionne pas
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2006, 12h17
  4. [Tableaux] une boucle qui ne boucle pas
    Par taly dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2006, 17h25
  5. [Tableaux] boucle while qui ne boucle pas comme je veux
    Par oceane751 dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 00h42

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