Problema na criação de uma stored procedure

Estou tentando criar uma stored procedure que sirva para verificar se minha tabela está vazia, e caso não esteja retornar o valor com o maior Id. Contudo não estou conseguindo.

CREATE PROCEDURE spConsulta @NameTable VARCHAR (50) AS BEGIN     SELECT Value     FROM @NameTable     WHERE Id = (SELECT MAX(Id) FROM @NameTable);      IF @@ROWCOUNT = 0         RETURN 0  END 

Errors.

Msg 1087, Nível 16, Estado 1, Procedimento spConsulta, Linha 6 [Linha de Início do Lote 0] É necessário declarar a variável de tabela “@NameTable”. Msg 1087, Nível 16, Estado 1, Procedimento spConsulta, Linha 7 [Linha de Início do Lote 0] É necessário declarar a variável de tabela “@NameTable”.

Alguém saberia como resolver este problema ? Pelo visto o problema esta no @NameTable, estou fazendo desta forma pois estou tentando utilizar esta stored procedure para todas as tabelas, pois todas as tabelas possuem a mesma estrutura, pelo visto não esta funcionando. Alguém saberia alguma forma alternativa de fazer isto ?