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 TOP SQL Server 2000


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut Problème TOP SQL Server 2000
    Bonjour,

    je travaille sur sql server 2000 et pour réaliser une pagination au résultats rendu par une requête j'ai vu que je doit utiliser l'instruction TOP.
    Ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 5 * FROM matable
    me rend une erreur Server: Msg 170, Level 15, State 1, et à ce que j'ai compris qu'il ne connait pas l'instruction TOP.
    merci pour votre aide.

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Peux-tu poster toute la totalité de la requête que tu as lancé ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Essaye peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP( 5) * FROM matable
    Accessoirement, avec Sql Server 2000, l'argument à l'option TOP doit être literal et ne peut pas être contenu dans une variable. (même si ce n'est pas le cas de ton exemple supra).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Salut etienne,

    voici la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * FROM ( 
       SELECT TOP 5 * from ( 
        SELECT TOP 10 *
        FROM matable 
        WHERE monchamp="machaine"
        ORDER BY id_table ASC 
       ) 
       tbl1 ORDER BY id_table DESC
      ) as tbl2 order by id_table ASC

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    La syntaxe du premier post est tout à fait normale.
    Je ne comprends pas le "pour réaliser une pagination au résultats rendu par une requête" ??

    EDIT : Il nous faudrait aussi le retour d'erreur complet du moteur.
    Alexandre Chemla - Consultant MS BI chez Masao

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * FROM ( 
       SELECT TOP 5 * from ( 
        SELECT TOP 10 *
        FROM matable 
        WHERE monchamp= 'machaine'
        ORDER BY id_table ASC 
       ) 
       tbl1 ORDER BY id_table DESC
      ) as tbl2 order by id_table ASC

    Et encore plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        SELECT TOP 5 * 
        FROM matable 
        WHERE monchamp = 'machaine'
        ORDER BY id_table ASC
    Etienne ZINZINDOHOUE
    Billets-Articles

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    salut,

    en tapant votre requête zinzineti j'ai ce message d'erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Server: Msg 170, Level 15, State 1, Line 1
    Line 1: Incorrect syntax near '5'.
    @Jinroh77: Je voudrais récupérer le résultat de ma requéte par groupe de 5 pour pagination et en plus normalment ça baisse le temps d'éxecution de la requête.

    Merci d'avance.

  8. #8
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Tu parles de cette requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 5 * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    Etienne ZINZINDOHOUE
    Billets-Articles

  9. #9
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Citation Envoyé par mino26tz Voir le message
    @Jinroh77: Je voudrais récupérer le résultat de ma requéte par groupe de 5 pour pagination et en plus normalment ça baisse le temps d'éxecution de la requête.
    Merci d'avance.
    Bizarre cette idée, et bizarre de se dire que ça peut optimiser quoique ce soit...
    Dès qu'un top ou un order est utilisé il y a écriture dans la tempDB de l'instance pour pouvoir trier les données...
    Alexandre Chemla - Consultant MS BI chez Masao

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Tu parles de cette requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 5 * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    oui c'est bien cette requête.

  11. #11
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Si vous avez envie de perdre du temps continuer d'exécuter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP '5' * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    vous aurez toujours l'erreur suivante

    Serveur : Msg 170, Niveau 15, État 1, Ligne 1
    Ligne 1 : syntaxe incorrecte vers '5'.

    A+
    Etienne ZINZINDOHOUE
    Billets-Articles

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Si vous avez envie de perdre du temps continuer d'exécuter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP '5' * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    vous aurez toujours l'erreur suivante




    A+
    re Zezinette avec ouo sans côte (TOP 5 ou TOP '5')l'instruction top n'est pas reconnu.

    Merci d'avance.

  13. #13
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Vous êtes sur que vous êtes bien sur une instance Microsoft SQL Server 2000 ???
    Alexandre Chemla - Consultant MS BI chez Masao

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    @Jinroh77 oui c'est bien sql server 2000. j'éxecute mes requêtes sur Microsoft SQL Enterprise Manager

    Microsoft Corporation

    Version*: 8.0

    Merci d'avance

    ce que je veux faire c'est exactement ça:http://sqlserver.developpez.com/faq/?page=Jeu#Jeu1

  15. #15
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Que donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET ROWCOUNT 5
    SELECT * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    Etienne ZINZINDOHOUE
    Billets-Articles

  16. #16
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Est ce que vous lancez cette requete seule ou est elle incluse dans une procedure avec d'autres instructions ?

    A l'occasion que donne la commande suivante :

    ++

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Que donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET ROWCOUNT 5
    SELECT * 
    FROM matable 
    WHERE monchamp = 'machaine'
    ORDER BY id_table ASC
    Elle me retourne les 5 premières lignes, mais ce que je veux c'est qu'elle me retourne les 5 première ligne puis de 5 à 10 ..etc.


    Mon but c'est de réaliser une pagination type Limit 0,5 dans MySQL.
    (http://sqlserver.developpez.com/faq/?page=Jeu#Jeu1)

    Merci d'avance

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Est ce que vous lancez cette requete seule ou est elle incluse dans une procedure avec d'autres instructions ?

    A l'occasion que donne la commande suivante :

    ++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Microsoft SQL Server  2000 - 8.00.760 (Intel X86)   Dec 17 2002 14:22:05   Copyright (c) 1988-2003 Microsoft Corporation  Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)

  19. #19
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Vous n'avez pas répondu à la question de Mikedavem
    Est ce que vous lancez cette requete seule ou est elle incluse dans une procedure avec d'autres instructions ?
    Est ce que vous exécuter votre requête de façon dynamique (SQL dynamique)?
    Etienne ZINZINDOHOUE
    Billets-Articles

  20. #20
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Ok.

    Une question bete .. vous faites cela depuis entreprise manager apparemment mais avez vous essaye depuis SQL Query analyzer ?

    ++

Discussions similaires

  1. Problème arborescence sql server 2000, Base suspecte
    Par alicia26 dans le forum Administration
    Réponses: 1
    Dernier message: 29/07/2011, 23h20
  2. problème réplication sql server 2000
    Par ivanov21 dans le forum Réplications
    Réponses: 1
    Dernier message: 09/06/2011, 18h34
  3. Problème installation SQL Server 2000 sur Windows 7
    Par chahbb dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 31/08/2010, 10h42
  4. Problème DTS SQL Server 2000 -> Oracle
    Par SetaSensei dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/11/2006, 16h16
  5. Problème installation SQL Server 2000 (programme antérieur)
    Par 404Found dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/04/2005, 10h24

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