Como levar o nome da tabela como um parâmetro de entrada para o procedimento armazenado?

Eu tenho um pequeno procedimento armazenado abaixo.

Estou tomando o nome da tabela como um parâmetro de entrada para o procedimento armazenado, de modo que planejo inserir os dados na tabela temporária e exibir o mesmo. Este é apenas um pequeno bloco de código do procedimento armazenado do meu projeto.

Quando estou compilando o abaixo, ele está considerando o parâmetro na instrução select como uma variável de tabela e lançando o erro como:

Deve declarar a variável da tabela "@TableName".

SQL:

CREATE PROCEDURE xyz @TableName Varchar(50) 
AS 
BEGIN 
SELECT TOP 10 * INTO #Temp_Table_One 
FROM @TableName 

SELECT * FROM #Temp_Table_One 
END

questionAnswers(2)

yourAnswerToTheQuestion