¿Parametrizar el nombre de la tabla en .NET / SQL?

Como sugiere el tema, deseo poder pasar nombres de tablas como parámetros usando .NET (no importa qué idioma realmente) y SQL Server.

Sé cómo hacer esto para los valores, p.command.Parameters.AddWithValue("whatever", whatever) utilizando@whatever en la consulta para denotar el parámetro. La cuestión es que estoy en una situación en la que deseo poder hacer esto con otras partes de la consulta, como los nombres de columnas y tablas.

Esta no es una situación ideal, pero es una que tengo que usar, no es realmente propensa a la inyección de SQL, ya que solo alguien que usa el código puede establecer estos nombres de tabla y no el usuario final. Sin embargo, es desordenado.

Entonces, ¿es posible lo que estoy preguntando?

EDITAR: Para aclarar el punto sobre la inyección SQL, los nombres de las tablas solo se pasan por código fuente, dependiendo de la situación. Es el desarrollador quien especifica esto. El desarrollador tendrá acceso a la capa de la base de datos de todos modos, por lo que la razón por la que pregunto no es tanto por la seguridad, sino solo por hacer que el código sea más limpio.

Respuestas a la pregunta(7)

Su respuesta a la pregunta