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 :

SQL serveur 2000 procédure stockée order by?


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut SQL serveur 2000 procédure stockée order by?
    bonsoir

    Lorsque j'utilise " ORDER by " dans une requète à l'intérieur d'une procédure stockée, un message d'erreur!!!!

    Quelqu'un aurait il une information sur le sujet??

    merci d'avance!!

  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 894
    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 894
    Points : 53 126
    Points
    53 126
    Billets dans le blog
    6
    Par défaut
    Postez le code....

    A +

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Voici la ligne de code qui génère une erreur :


    exec ('CREATE VIEW essai AS SELECT * FROM tracabilite where Edite = 0 order by date, equipe,right(codescan,3), agent')

    L'erreur indique que "la clause order by ne peut etre utilisée dans une vue"???

    Merci pour votre aide!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 143
    Points
    143
    Par défaut
    La clause ORDER BY ne peut tout simplement pas être employée DANS une vue.

    La solution pour toi consistera a fait l'order by SUR ta vue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT mes_champs
    FROM ma_vue
    ORDER BY mon_champ
    Bonne journée

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut RE
    Ok mais moi je souhaite classer les éléments de ma vue!!

    j'ai peut etre trouvé une piste en associant le ORDER BY et le TOP...

    A voir...

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Autre question
    Voila un autre petit soucis:

    Je voudrais supprimer une vue dans une procédure stockée mais seulement si cette vue existe...

    Je ne trouve pas la syntaxe exacte...

    Merci pour votre aide!!

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    1. Utilise SELECT TOP 100 PERCENT dans la vue et l'ORDER BY fonctionnera.

    Cependant, d'un point de vue SQL, cela n'a aucun sens de mettre une clause ORDER BY dans une vue, dans la mesure où la même vue pourrait être triée autrement par un SELECT sur cette vue.

    2. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[NomDeVue]') and OBJECTPROPERTY(id, N'IsView') = 1)
    drop view [dbo].[NomDeVue]

    pour SQL 2000

    En 2005, remplace dbo.sysobjects par sys.objects

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Merci Philippe pour le test sur l'existence de la vue!

    Une vue représente bien une "photo" d'une table. Si je souhaite consulter les éléments de ma table sous une certaine forme je vois pas en quoi c'est absurde d'utiliser un order by....

    enfin je veux bien admettre mais bon je vois pas pourquoi!

    merci bcp en tout cas

    A+

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Un vue n'est rien d'autre qu'un select :

    Supposons cette vue ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE VIEW MaVue
    AS
    SELECT TOP 100 PERCENT MaColonne1, MaColonne2, MaColonne3
    FROM MaTable
    ORDER BY MaColonne1
    Si tu fais SELECT * FROM MaVue, tu obtiendras bien les résultats triés selon MaColonne1.

    Maitenant, fais SELECT * FROM MaVue ORDER BY MaColonne2.

    Les lignes seront bien triées selon MaColonne2, mais à quoi sert-il de mettre ORDER BY MaColonne1 dans le code de la vue ?

    Voila la raison.

  10. #10
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Si je ne dis pas de conneries, c'est lié à la raison d'être des vues :
    le but n'est pas de créer un alias pour faire joli et économiser des caractères à taper, mais de définir un nouvel objet afin d'affiner les droits.

    Car par exemple, il est imposible de restreindre les droits sur une table en fonction du contenu ou sur les colonnes.
    Par contre, tu peux créer une vue qui renvoie un nombre limité d'informations, puis donner l'accès à ton utilisateur...
    (et dans ce contexte, un order by n'y change pas grand chose)

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/04/2014, 10h06
  2. SQl server 2000 Procédure stockée
    Par Guena5635 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/04/2008, 10h02
  3. SQL SERVEUR 2000 procédure stockée
    Par Guena5635 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/03/2008, 12h57
  4. Sql 2000: Procédure stockée dans une vue
    Par MALAGASY dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/10/2006, 17h41
  5. [sql server 2000] Procédure stockée ~ Récursif (débutant)
    Par Sadneth dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/02/2006, 11h16

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