|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
En attente de confirmation mail
|
Bonjour,
Ce message fait un peu suite a mon message précédent supprimer plusieurs colonnes en une seule requete. J'avais simplifié mon problème de façon à le rendre plus clair avant de le poster sur le forum mais finalement du coup je suis passé a coté de mon vrai problème. Voici mon problème, j'ai une table dans laquelle j'ai des colonnes a conserver (je connais le nom de celles-ci) et je dois supprimer toutes les autres (sans en connaitre leur nom) Par exemple j'ai une table "MaTable" qui contient les champs suivants : col1,col2,col3,col4,col5,col6,col7 Je sais juste que je doit supprimer tous les champs de la table à l'exception de col1,col3 et col4. Le tout bien sur en ignorant que les autres colonnes s'appellent col2,col5,col6,col7 J'ai donc une requete pour retrouver le nom de toutes les colonnes que je dois supprimer : Code :
Et je voudrais faire un drop de ces colonnes mais la requete échoue lorsque je fait : Code :
(j'ai la même erreur si j'encapsule la sous-requête entre parenthèses) Existe-t-il une façon de répondre a mon besoin en une seule requete sans devoir passer par un curseur qui ferai une boucle de DROP COLUMN ? Edit : bon je ne suis pas borné je ne souhaite pas absolument avoir une seule requete pour faire cela mais j'aimerai au moins pouvoir me passer de la dizaine de lignes d'instructions qu'impliquerai l'utilisation d'un curseur. Merci d'avance. |
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() |
En une seule exécution, non pas moyen de le faire en SQL "pur".
Par contre, vous pouvez générer vos ordres SQL et exécuter le résultat : Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#3 |
|
En attente de confirmation mail
|
Merci pour votre réponse,
Oui il s'agit d'une opération a caractère exceptionnel. Par contre sachant que tout ceci doit etre executé dans un script T-SQL je me retrouve donc obligé de passer par un curseur pour executer les ordres sql que m'a généré la requete précédente (celle que vous avez indiqué dans votre réponse), ce que je voulais éviter mais bon tant pis si j'ai pas le choix je vais procéder comme ça alors. Encore merci ! (Et merci aussi pour la remise en forme de mon précédent message, en effet j'avais pas fait un post très propre) |
|
|
00
|
|
|
#4 | ||
|
En attente de confirmation mail
|
Si jamais ça peut servir ou intéresser quelqu'un voici le script complet:
Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Vous pouviez effectivement vous passer de curseur, et lancer un seul ordre DDL par table :
Code SQL :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com