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)