J'ai une procédure stockée qui utilise un paramètre @n et @colname et utilise @n pour calculer certaines informations. À l'heure actuelle, @colname ne fait rien car T-SQL ne vous permet pas de créer un nom de colonne à partir d'un paramètre. Il y a des exemples de personnes qui disent que vous pouvez le faire grâce à une procédure stockée dynamique, mais pour autant que je sache, ils ne font pas ce que je veux.Attribution d'un nom à une colonne en tant que paramètre transmis à une procédure stockée
La raison de ceci est que je veux créer une autre procédure stockée qui utilise cette autre procédure stockée plusieurs fois et passe des valeurs différentes de @n et @colname.
Donc, juste pour préciser encore une fois, je voudrais être en mesure d'écrire une procédure stockée dynamique qui fait cela:
SELECT a, b, c AS @colname
FROM t1
WHERE b = @n
Ensuite, une fois que je peux le faire, je vais écrire mon autre procédure stockée comme ceci:
EXEC stored_procedure1 @n = 3, @colname = 'Column 1'
EXEC stored_procedure1 @n = 6, @colname = 'Column 2'
Toute aide à ce sujet serait grandement appréciée. Merci à l'avance
Vous pouvez uniquement paramétrer des données. vous ne pouvez pas paramétrer les noms de colonne, les noms de table ou les alias. C'est seulement possible si vous utilisez SQL dynamique, mais c'est quelque chose que je ne ferais qu'en dernier recours. Pourquoi avez-vous besoin de différents alias pour la colonne en premier lieu? –
Je veux utiliser SQL dynamique, je ne suis pas inquiet de l'injection SQL ou quelque chose comme ça. J'ai besoin de différents alias car chaque colonne représentera des données différentes. Les requêtes actuelles sont beaucoup plus complexes que ce que j'ai écrit ci-dessus, je voulais juste donner un exemple simple – Jason
Cela semble fragile et sortir. – granadaCoder