segunda-feira, 3 de novembro de 2008

Salvando resultado de uma procedure em uma variável

Já que o assunto é SQL.

Para salvar o resultado de uma procedure em uma variável,você vai precisar de uma tabela temporária para intermediar o processo.

No SQL 2000, terá que usar tabelas temporárias mesmo.
Ficará algo parecido com isso:
Create Table #TabelaTemp (IdTeste INT)
INSERT INTO @TabelaTemp EXEC MinhaProcedure '1'





Já no SQL 2005, pode usar a variável @TABLE que além de ser mais simples, em geral, é mais performática do que uma tabela temporária.
Vai ficar mais ou menos assim:

DECLARE @TabelaTemp as TABLE (IdTeste INT)
INSERT INTO @TabelaTemp EXEC MinhaProcedure '1'



Depois de inserir os resultados nas tabelas temporárias, basta apenas dar selects com sets e fica tudo resolvido.

Set @Variavel = (select IdTeste from @TabelaTemp ) ou
Set @Variavel = (select IdTeste from #TabelaTemp )


Lembrando que no SQL 2000, depois de usar a tabela temporária, sempre DROPE ela.
A variável @TABLE do SQL 2005 não precisa ser dropada.

Um comentário:

Anônimo disse...

Estou gostando de vê sua dedicação ao transmitir seus conhecimentos técnicos.
E o melhor de tudo, sua linguagem facilita o entendimento de coisas que por muitas vezes não são tão claras nos artigos técnicos. Não esquece se falar sobre views e suas funcionalidades okey.

Valew Andrey

Rogério