Usted puede hacer esto en un par de maneras.
Una, es crear la consulta usted mismo y ejecutarla.
SET @sql = 'SELECT ' + @columnName + ' FROM yourTable'
sp_executesql @sql
Si optas por ese método, asegúrate de santificar tu información. Incluso si sabe que su aplicación solo dará nombres de columna 'reales', ¿qué pasa si alguien encuentra una grieta en su seguridad y puede ejecutar el SP directamente? Entonces pueden ejecutar casi cualquier cosa que quieran. Con SQL dinámico, siempre, siempre, valide los parámetros.
Como alternativa, puede escribir una instrucción CASE ...
SELECT
CASE @columnName
WHEN 'Col1' THEN Col1
WHEN 'Col2' THEN Col2
ELSE NULL
END as selectedColumn
FROM
yourTable
Esto es un poco más largo aliento, pero mucho más seguro.
puede por favor seleccionar la mejor respuesta a esta pregunta, la primera respuesta actual es engañosa. – ctbrown