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!!
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!!
Postez le code....
A +
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!
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.
Bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT mes_champs FROM ma_vue ORDER BY mon_champ
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...
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!!
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
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+
Un vue n'est rien d'autre qu'un select :
Supposons cette vue ci :
Si tu fais SELECT * FROM MaVue, tu obtiendras bien les résultats triés selon MaColonne1.
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
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.
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager