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

Langage SQL Discussion :

[ SQL - proc stockée ] optimisation du code parcours curseur


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut [ SQL - proc stockée ] optimisation du code parcours curseur
    Bonjour,

    Aujourd'hui j'ai une requête pour laquelle je récupère des lignes.

    j'en crée un cursor et je parcourt toutes les lignes pour
    les insérer dans une autre table contenant un champ compteur supplémentaire.

    Exemple pour :
    Code:

    declare curLignes cursor for
    select A, B, C
    from maTable1 inner join maTable2 on ....

    declare @a varchar(..), @b ..., @c ...,
    @Compteur int
    select @Compteur = 0
    open curLignes
    fetch next from curLignes into @a, @b, @c
    while @@FETCH_STATUS = 0
    begin
    set @Compteur = @Compteur + 1
    insert into MONRESULTAT( @a, @b, @c, @Compteur )

    fetch next from curLignes into @Reference, @UdP, @Ligne, @Qte
    end




    Je souhaiterais éviter de passer par un curseur.
    insérer directement mes lignes avec le compteur.


    Merci d'avance pour les réponses.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Si vous êtes en MS SQL Server une seule requête suffit à votre traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO MONRESULTAT
    SELECT A, B, C, IDENTITY (INT, 0 , 1)
    FROM   maTable1 
           inner join maTable2 on ....
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/08/2010, 16h07
  2. Réponses: 8
    Dernier message: 20/09/2007, 15h29
  3. [Proc Stock]Création d'un curseur en SQL dynamique
    Par marsup54 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/06/2006, 14h02
  4. [ASE][T-SQL]Proc stock
    Par bdf94 dans le forum Sybase
    Réponses: 1
    Dernier message: 27/02/2006, 15h54

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