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

标签 sql sql-server stored-procedures

我有一个 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)

关于SQL:根据变量选择动态列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637983/

相关文章:

mysql - 在一个查询中按特定字段选择所有可用组合

sql-server - 在 SQL Server 中恢复已删除的记录

mysql - mysql存储过程中超出范围的溢出处理

sql - upsert 到表,返回最后插入的记录的 id

sql - 从 JOIN 中插入值?

c# - 插入错误 ASP.NET

java - 存储过程中的分页策略(查看或?)

sql - 如何根据条件复制sql中的数据

sql - 如何在 Postgres sql 函数中引用命名参数?

sql-server-2005 - 在asp.net和sql server 2005中同时从多个线程调用存储过程