J'ai une procédure stockée Microsoft SQL dont je veux définir le nom de colonne via une variable qui lui est transmise:
CREATE PROCEDURE [My_Procedure]
@myDynamicColumn varchar(50)
AS BEGIN
SELECT 'value' AS @myDynamicColumn
END
Cela ne fonctionne pas ("syntaxe incorrecte"). Si j'encapsule le nom de la colonne avec []:
SELECT 'value' AS [@myDynamicColumn]
Le nom de la colonne s'affiche littéralement en tant que '@myDynamicColumn' au lieu de la valeur réelle. Est-ce qu'il y a un moyen de faire ça? J'ai examiné des articles SQL dynamiques, mais rien n'est tout à fait ce que je demande.
EXEC ('SELECT ''value'' AS ' + @myDynamicColumn)
Vous pouvez créer votre requête dans une chaîne et utiliser exec
CREATE PROCEDURE [My_Procedure]
@myDynamicColumn varchar(50)
AS BEGIN
EXEC('SELECT ''value'' AS ' + @myDynamicColumn)
END