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

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

这不起作用(“语法错误”)。如果我用[]包裹列名:
SELECT 'value' AS [@myDynamicColumn]

列名从字面上输出为“@myDynamicColumn”,而不是实际值。有什么办法吗?我已经研究了动态SQL文章,但没有什么是我要的。

最佳答案

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

10-07 17:52