Question

J'ai créé une vue simple composé de 3 tables dans SQL.

En un clic droit et en sélectionnant la conception, dans la table de l'Explorateur d'objets, je modifié mon affichage personnalisé. Je viens d'ajouter sortby asc dans un champ.

Le problème est que les changements ne sont pas reflétées dans le outout de la vue. Après avoir enregistré la vue et la sélection Dégagée le tri est pas affiché en sortie.

Alors qu'est-ce qui se passe ici?

Était-ce utile?

La solution

Techniquement, il est possible de faire cuire le tri dans un VIEW mais il est fortement déconseillé. , Vous devriez plutôt appliquer sorte lors de la sélection de la vue comme ceci:

Select ...
From MyView
Order By SortByCol ASC

Si vous voulez vraiment savoir (mais encore une fois, je recommande fortement contre), vous pouvez utiliser la commande TOP pour contourner la limitation du tri dans la vue:

Select TOP 100 PERCENT * Col1, Col2....
From Table1
Order By SortByCol ASC

Autres conseils

Il semble:

Il y a une restriction sur les clauses SELECT dans une définition de vue dans SQL Server 2000, SQL 2005 et SQL 2008. Une instruction CREATE VIEW ne peut pas inclure la clause ORDER BY, à moins d'une clause TOP dans la liste de sélection de la commande SELECT déclaration. La clause ORDER BY est utilisée uniquement pour déterminer les lignes qui sont renvoyées par la clause TOP dans la définition de la vue. La clause ORDER BY ne garantit pas des résultats ordonnés lorsque la vue est interrogé, sauf si ORDER BY est également spécifiée dans la requête elle-même.

Il y a aussi un correctif qui doit être appliqué. Après cela, vous devez utiliser les 100% pour vous assurer que l'ordre par les œuvres.

HTH

En général , Les vues ne peuvent être triés.

(Comme d'autres ont mentionné, il y a un hack pour le faire, mais puisque vous utilisez un concepteur visuel de requêtes plutôt que d'écrire votre définition de la vue dans SQL, il est sans doute difficile à mettre en œuvre que hack.)

Vous ne l'avez pas fait « modifier » votre point de vue, vous seulement changé l'instruction SELECT que EM utilisait pour sélectionner de votre point de vue. paramètres de tri ne sont pas conservés dans la définition de la vue.

Lorsque vous fermez l'onglet, EM ne se souvient pas votre préférence de tri pour ce point de vue, donc quand vous ouvrez la vue encore, il sort dans l'ordre décide SQL Server.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top