SQL:根据变量选择动态列名

问题描述:

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

I have a Microsoft SQL stored procedure whose column name I want to set via a variable that is passed into it:

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

这不起作用(语法不正确").如果我用 [ ] 包裹列名:

This does not work ("Incorrect syntax"). If I wrap the column name with [ ]:

SELECT 'value' AS [@myDynamicColumn]

列名字面上输出为@myDynamicColumn"而不是实际值.有没有办法做到这一点?我查看了动态 SQL 文章,但没有什么是我想要的.

The column name literally outputs as '@myDynamicColumn' instead of the actual value. Is there any way to do this? I've looked into dynamic SQL articles but nothing is quite what I'm asking for.

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