Nous savons tous que pour sélectionner toutes les colonnes d'un tableau, nous pouvons utiliser
SELECT * FROM tableA
Existe-t-il un moyen d'exclure une ou plusieurs colonnes d'un tableau sans spécifier toutes les colonnes ?
SELECT * [except columnA] FROM tableA
Le seul moyen que je connaisse est de spécifier manuellement toutes les colonnes et d'exclure la colonne indésirable. Cela prend beaucoup de temps et je cherche donc des moyens d'économiser du temps et des efforts sur ce point, ainsi que sur la maintenance future si la table a plus ou moins de colonnes.
Merci !
58 votes
Il serait très pratique de disposer de cette fonctionnalité, non pas pour la mettre dans le code de production, mais à des fins de dépannage. Exemple : J'ai une table qui a plusieurs colonnes que j'interroge, mais je veux rapidement omettre une ou deux colonnes de texte.
0 votes
J'en avais besoin lorsque je travaillais avec openquery (bien que j'aie besoin de la fonctionnalité dans MySQL plutôt que dans SQL Server). Je devais interroger une base de données MySQL à l'aide de SQL Server. Parce qu'une table MySQL avait des colonnes de caractères de largeur fixe, je ne pouvais pas utiliser une fonction
SELECT *
(OLE DB a du mal à les mettre en correspondance). Je n'ai pas pu spécifier les bonnes colonnes car je n'avais pas d'accès direct à la base de données MySQL, mais SQL Server a eu la gentillesse de m'informer des noms des colonnes de caractères à largeur fixe...9 votes
J'aimerais ajouter une autre raison de le faire :
SELECT DISTINCT *
sauf pour la colonne clé qui doit fonctionner sans dupliquer les lignes que quelqu'un d'autre a créées.4 votes
Je suis d'accord pour dire que cela prend du temps. C'est pourquoi j'ai l'habitude de faire un clic droit sur le tableau, de choisir "sélectionner les 1000 premières lignes", puis de supprimer les colonnes que je ne veux pas.
8 votes
À ne pas oublier : dans de nombreux cas, le développeur ne connaît pas les colonnes parce qu'elles peuvent changer. c'est typique des entrepôts de données. après 6 mois, ils ajoutent une colonne supplémentaire et elle doit être sélectionnée sans changer le code.
4 votes
Il y a tellement de cas d'utilisation pour une telle fonctionnalité (exclure n colonnes d'un SELECT *, par opposition à 1 colonne), qu'elle devrait vraiment être ajoutée à la norme ANSI pour le SQL.
0 votes
C'est le meilleur nécropostage du serveur.