J'ai une procédure stockée qui renvoie 80 colonnes et 300 lignes. Je veux écrire une sélection qui obtient 2 de ces colonnes. Quelque chose comme
SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2'
Lorsque j'ai utilisé la syntaxe ci-dessus, j'obtiens l'erreur:
"Nom de colonne invalide".
Je sais que la solution la plus simple serait de changer la procédure stockée, mais je ne l'ai pas écrite et je ne peux pas la changer.
Existe-t-il un moyen de faire ce que je veux?
Je pourrais faire une table temporaire pour y mettre les résultats, mais parce qu'il y a 80 colonnes, je devrais donc faire une table temporaire de 80 colonnes juste pour obtenir 2 colonnes. Je voulais éviter de retrouver toutes les colonnes retournées.
J'ai essayé d'utiliser
WITH SprocResults AS ....
comme suggéré par Mark, mais j'ai eu 2 erreursSyntaxe incorrecte près du mot clé "EXEC".
Syntaxe incorrecte près de ')'.J'ai essayé de déclarer une variable de table et j'ai eu l'erreur suivante
Erreur d'insertion: le nom de la colonne ou le nombre de valeurs fournies ne correspond pas à la définition de la table
Si j'essaye
SELECT * FROM EXEC MyStoredProc 'param1', 'param2'
j'obtiens l'erreur:Syntaxe incorrecte près du mot clé 'exec'.
EXEC
n'est pas un mot clé MySQL (l'équivalent MySQL est des instructions préparées ). Bien que j'aimerais connaître la réponse pour MySQL, les réponses ci-dessous ciblent T-SQL. Redéfinir.