SQL:根据variablesselectdynamic列名

我有一个Microsoft SQL存储过程的列名,我想通过传递给它的variables来设置:

CREATE PROCEDURE [My_Procedure] @myDynamicColumn varchar(50) AS BEGIN SELECT 'value' AS @myDynamicColumn END 

这不起作用(“不正确的语法”)。 如果我用[]包装列名称:

 SELECT 'value' AS [@myDynamicColumn] 

列名字面上输出为“@myDynamicColumn”,而不是实际的值。 有没有办法做到这一点? 我已经看过dynamicSQL文章,但没有什么是我所要求的。

 EXEC ('SELECT ''value'' AS ' + @myDynamicColumn) 

你可以build立你的查询到一个string,并使用exec

 CREATE PROCEDURE [My_Procedure] @myDynamicColumn varchar(50) AS BEGIN EXEC('SELECT ''value'' AS ' + @myDynamicColumn) END