No ADO.NET, existem restrições onde os parâmetros SQL podem ser usados ​​na consulta SQL?

Esta questão é apenas para fins educacionais, já que não estou construindo atualmente nenhum aplicativo que construa consultas SQL com entrada do usuário.

Dito isso, sei que no ADO.NET você pode impedir a injeção de SQL fazendo algo assim:

OleDbCommand command = new OleDbCommand("SELECT * FROM Table WHERE Account = @2", connection);
command.Parameters.AddWithValue("@2", "ABC");

Mas, supondo que seu aplicativo seja projetado de tal forma que o usuário possa realmente inserir o nome da tabela, você pode fazer o seguinte? (Eu não me importo se é uma má idéia permitir que os usuários forneçam o nome da tabela, eu só quero saber se o seguinte é possível ...)

OleDbCommand command = new OleDbCommand("SELECT * FROM @1 WHERE Account = @2", connection);
command.Parameters.AddWithValue("@1", "Table");
command.Parameters.AddWithValue("@2", "ABC");

Continuo recebendo uma exceção quando executo o segundo código, dizendo que a consulta SQL está incompleta e fiquei me perguntando se o problema é que o que estou tentando fazer simplesmente não pode ser feito ou se estou ignorando alguma coisa.

questionAnswers(1)

yourAnswerToTheQuestion