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 :

With à la place d'un curseur


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut With à la place d'un curseur
    Bonjour,

    Je poste cette question à tout hazard.
    J'ai rencontré un développeur SQL Serveur qui m'a parlé de cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        WITH TMP_Quest (TECH_ID, TECH_Nb) AS (
             Select TECH_ID, COUNT(*) as TECH_Nb
               From dbo.EVAL_Questionnaire
           Group By TECH_ID
    Selon lui elle permet de remplacer les curseurs et les tables temporaires
    Ma question est de savoir si, comme un curseur ou une table temporaire il est possible d'utiliser cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        WHILE @@TMP_Quest = 0
             BEGIN
                  .....
                  FETCH NEXT FROM TMP_Quest;
             END
    et si oui comment

  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 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/s...r_avoidCursor/

    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/ * * * * *

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Par défaut
    Merci mais ce n'est pas ma question.

    Je ne connaissais pas With en SQL Serveur.
    La personne qui m'en a parlé me l'a vanté comme la panacée pouvant remplacer les curseurs, les tables temporaires et autres

    Ma question est donc : est-il possible d'utiliser un While sur le résultat obtenu par le With
    A priori je pense que non

    Mais je vous rejoins entièrement quant à tenter de limiter au maximum de recours au curseurs.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    La CTE est une forme d'expression de requête qui allège l'écriture. Elle n'améliore rien d'autre que la lisibilité. Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/s...te-recursives/

    Le seul intérêt technique est qu'il est possible de faire de la récursivité par le biais des CTE, ce qui était impossible avant.

    Votre vantard doit donc très mal connaître SQL puisque apparemment il n'arrivait pas, sans la CTE à faire ce qu'il aurait du faire !

    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/ * * * * *

Discussions similaires

  1. Utilisation d'une requête à la place d'un curseur
    Par Mouckson dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 09/05/2012, 22h18
  2. Sablier à la place du curseur pdt le chargement
    Par The_Super_Steph dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/05/2007, 11h59
  3. [PL/SQL] curseur et clause WITH
    Par ljoly dans le forum Oracle
    Réponses: 6
    Dernier message: 24/01/2006, 14h26
  4. Utiliser une image à la place du curseur par défaut
    Par nice dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 11/12/2005, 22h15
  5. Changer de place le curseur
    Par CCin dans le forum C++
    Réponses: 4
    Dernier message: 01/11/2005, 19h10

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