SQL Server 2008 - Como fazer um varchar ser reconhecido como nome de uma tabela?

5 respostas
cbr0wn

Eu gostaria de fazer um varchar ser reconhecido como o nome de uma tabela no SQL Server 2008.

Tentei da seguinte maneira:

declare @t varchar(100)
select	@t=tab.name
	from	sys.tables tab
	where	tab.name = 'clientes'
   
select	*
from	@t

porém da erro de compilação.

A idéia é colocar essa variável @t como parâmetro de uma função.

Alguém sabe como fazer isso?

5 Respostas

A

Essa é uma dúvida relativamente comum nos fórums de sql e até onde lembro a resposta é: não faz!

Para isto você precisará usar sql dinâmico através do comando exec.

Aliás, tem 3 comandos no SQL Server para executar sql dinâmico, mas não lembro quais são os outros.

Vale a pena procurar no google por eles pois o Exec era o menos recomendável (apesar de não lembrar o motivo).

cbr0wn

Ok e obrigado Abel! Eu já havia procurado no Google, mas sem sucesso. Vou procurar agora com o comando exec para ver os resultados.

ViniGodoy

Por favor, evite postar títulos de tópicos usando letras maiúsculas.

ViniGodoy

Movido para o fórum de persistência.

cbr0wn

Ok Vini, desculpe-me. O título já foi alterado.

Criado 23 de outubro de 2010
Ultima resposta 24 de out. de 2010
Respostas 5
Participantes 3