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 :

Problème extraire ligne d'une table


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Problème extraire ligne d'une table
    Bonjour,

    Comment on peut faire pour extraire les lignes d'une table.

    Ce que j'aimerais c'est d'extraire en premier la première ligne puis la suivante jusqu'à la dernière ligne y compris de la table.

    Je sais qu'on peut le faire avec un cursor et la commande fetch next mais existe-il une autre manière de faire???

  2. #2
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Désolé je me suis mal exprimé,

    Ce que je veux c'est extraire une ligne à la fois et non toutes les lignes d'un coup

    Merci

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Il n'y a pas la notion de première ligne ..., avec le Language SQL !¨
    Postez le scripte de création de votre table.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Voici le corps de mon trigger :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    create trigger dbo.TableA_updateCascade
    on dbo.TableB
    after update
    as
     begin
     --Variables qui récupèrent la (les) valeurs des tables inserted et deleted
     declare @vl_OldColB1 int
     declare @vl_NewColB1 int
     
     --Déclaration des cursors pour parcourir les lignes des tables inserted et deleted
     declare cursorDeleted cursor for select ColB1 from deleted
     declare cursorInserted cursor for select ColB1 from inserted
     
     --Ouverture des deux cursors
     open cursorDeleted
     open cursorInserted
     
     --Extraction de la première ligne de la table deleted
     fetch next from cursorDeleted into @vl_OldColB1
     
     --Boucle (@@FETCH_STATUS=0 SI ON EXTRAIT UNE LIGNE)
     while (@@FETCH_STATUS = 0)
      begin
       --Extration d'un ligne de la table inserted
       fetch next from cursorInserted into @vl_NewColB1
     
       while (@@FETCH_STATUS=0)
        begin
         --Mise à jour de la table TableA
         update TableA 
         set ColA1 = @vl_NewColB1
         where COLA1= @vl_OldColB1
        end
     
       --Ligne suivante de la table deleted
       fetch next from cursorDeleted into @vl_OldColB1  
    end
     
     end
    J'aimerais faire la même chose mais sans utiliser de cursors. Je ne sais pas si cela est possible???

    Merci

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Essaie avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Create trigger dbo.TableA_updateCascade
    on dbo.TableB
    after update
    as
    begin
          Update TableA
          Set TableA.Col_A=I.Col_A
          FROM Inserted I,Deleted D
          WHERE  TableA.Col_A=D.Col_A
    end

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci Wolo Laurent,

    J'ai utilisé les cursors pour le cas je met à jour plusieurs lignes dans ma tableB en MEME TEMPS.

    Par exemple : insert into TableB select* from...

    Je ne sais pas si le trigger est appelé une fois ou à chaque ligne???

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Pour le cas de figure, il est appelé une fois.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. [MySQL] Problème différentiation des lignes d'une table dans une boucle
    Par ppioul dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/05/2008, 18h21
  2. [WD9] Problème cache ligne d'une table
    Par cactus666 dans le forum WinDev
    Réponses: 3
    Dernier message: 21/11/2007, 22h30
  3. [WD11]Problème coloration de lignes d'une table
    Par arnaud_verlaine dans le forum WinDev
    Réponses: 2
    Dernier message: 05/09/2007, 09h40
  4. Réponses: 2
    Dernier message: 20/03/2007, 13h39
  5. Réponses: 5
    Dernier message: 08/08/2006, 02h22

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