Order by desc comme l'option par défaut de SQL Server Management Studio?
Est-il un moyen de faire de SQL Server Management Studio retourner les lignes décroissant par défaut ?
Chaque fois que j'ouvre une table via le menu (par exemple en sélectionnant toutes les lignes de retour), je reçois le plus ancien lignes du haut.
Je sais que je peux ajouter 'order by desc" dans l'instruction sql, mais de frappe qui est plus ennuyeux 🙂
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas modifier le modèle existant pour générer Sélectionne à partir du menu contextuel dans SSMS.
Heureusement, SSM est extensible. Cela signifie que vous pouvez écrire vos propres extensions qui peut faire exactement ce que vous voulez, ou vous pouvez utiliser une solution existante. Je recommande Mladen de SSMS Pack d'Outils:
http://www.ssmstoolspack.com/
Il était libre jusqu'à récemment, et l'est encore pour les versions 2008r2 et plus tôt.
Il n'y a pas d'ordre de tri par défaut dans SQL
Si vous voyez plus "ancien" sur le dessus qui peut être le moyen le plus rapide pour le moteur pour la récupérer, parce que c'est comment il est stocké sur le disque.
Vous n'êtes pas assuré d'obtenir dans cet ordre, considèrent qu'il est "non ordonnée", sauf si vous spécifiez un ordre!
ORDER BY
est la seule façon d'avoir des résultats dans un ordre spécifique.De commande peut être une opération coûteuse en fonction de la table et de l'ordre spécifié, et non ordonnée est la norme.
TOP X
est juste pour limiter le jeu de résultats. Vous pouvez certainement ajouter unORDER BY
. Dans des circonstances normales, si il n'y a pas rejoint les résultats retournés sera probablement dans les clés de l'index cluster commande.Ce que JNK dit est correct à 100%.
Mais si vous voulez juste pour normalement travail, et seulement lorsque vous ouvrez une table, plutôt que lors d'une requête sur une table...
Essayez d'ajouter un index cluster, avec le premier champ indexé indexé dans l'ordre décroissant. Ce sera probablement effectivement causer ce dont vous avez besoin.
(Si vous disposez déjà d'un index cluster sur ce champ, modifier ses propriétés et modifier sa commande.)
Ce n'est qu'une idée judicieuse si un tel indice est respectueux de l'utilisation réelle de la table. Il serait un échec pour avoir un index qui est inutile par programmation, juste pour votre commodité 😉
À la recherche à la sortie du générateur de profils, il semble que la requête est générée à la volée, donc je ne mettrais pas mes espoirs sur un modèle que vous pouvez modifier quelque part
Comme alternative, vous pouvez créer une petite procédure stockée qui prend le nom d'un tableau et renvoie les données à partir de ladite table. En supposant que vous avez (récurrents) de logique dans vos tableaux qui indiquent l'âge de l'dossiers, il ne devrait pas être trop difficile de trouver un défaut commande de ce tableau. Ensuite, si vous en lien cette procédure stockée pour une touche de raccourci, vous pouvez facilement obtenir les n premiers enregistrements de cette table dans l'ordre voulu. Je sais que c'est pas tout à fait la même chose que d'avoir l'information dans l'Explorateur d'Objets, mais personnellement je n'ai jamais utiliser l'Explorateur d'Objets et plutôt profiter de l'obtention du contenu d'une table, il suffit de sélectionner le texte dans une fenêtre de requête et en appuyant sur CTRL-3.
Pour obtenir vous avez commencé, il ressemblerait à quelque chose comme ceci
De "relier" à une touche de raccourci, vous aurez besoin d'aller à la
Tools
\Customize
menu, cliquez sur le[Keyboard...]
bouton. Développez leKeyboard
branche dans l'arbre et aller à laQuery Shortcuts
de la feuille. Vous obtenez alors une fâcheuse de la grille qui vous permet de lier une procédure stockée à uneCTRL-nbr
combinaison. L'esprit que certains d'entre eux sont fixes + une fois que vous configurez-le et appuyez sur OK, le réglage ne fonctionne que pour les requêtes de windows que vous avez récemment ouverts, existants sera de travailler avec la "vieille" config.Espère que cela aide un peu...
PS: si vous nommez
sp_select_top_n_desc
et de les compiler dans la base de données master, vous devriez être en mesure de l'utiliser partout dans le serveur sans avoir besoin de déployer dans chaque base de données. Cependant, vous aurez probablement besoin de passer à la dynamique-sql puis en préfixe toussys.table
des requêtes avec la sortie deDB_Name()
que sinon il va probablement regarder dans le maître.sys.les colonnes de la table etc.. ce qui n'est pas ce que vous voulez =)Essayez de créer un point de vue sur ce tableau comme celui-ci, et utilisez-la dans votre clause select ou ad hoc requête
En fait, vous pouvez créer un addin pour ssms qui ajoute un nouvel élément dans l'explorateur d'objets dans le menu contextuel.
Cochez cette question: Créer un élément de menu personnalisé dans l'Explorateur d'Objets
Une autre façon est de créer un SP qui génère et exécute l'instruction select avec la clause ORDER BY dans le maître db (sur tous les serveurs) et de la lier à un raccourci clavier pour que le sp.
Cité de Itzik Ben-Gan du Microsoft SQL Server 2012 T-SQL les Fondamentaux -> Chapitre 1 -> arrière-plan Théorique -> la Théorie des ensembles:
SSMS ne prend pas en charge personnalisée par défaut de l'instruction SELECT. Si elle ne l'appui, la colonne qui faut-il la mettre après la clause ORDER BY, compte tenu de tables
Même SQL SERVER seront en mesure d'énumérer les données les plus récentes de quelques jours, il n'est pas d'une nature façon de penser à des lignes individuelles (les plus récents/plus anciens) sur des tables. Essayez d'utiliser l'instruction de mise à JOUR combinée avec la clause ORDER BY pour mettre à jour les données les plus récentes.
Même si, officiellement, il n'y a pas d'ordre de tri par défaut pour la simple et linéaire d'entrée, je suis en obtenant des DESC ordre de tri par défaut avec PK ou IX de l'ordre de tri. Disons que pour les tables de journal où je m'intéresse le plus pour les dernières entrées.
Ou dans SSMS ...
pour moi - je utiliser EF premier Code, mais le faire à chaque fois que je crée un nouveau tableau:
Cliquez-droit sur la table, Table de scripts comme -> Drop & Create table, et de Modifier le SQL et modifier la clé DESC, puis exécutez le script.. fait (aucun point de vue ou quoi que ce soit salissant)