Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Crie dinamicamente uma tabela temporária com base no conjunto de resultados do SP


Resposta curta:não, você não pode fazer isso.

Você tem que pré-declarar sua tabela temporária com o número exato de colunas que serão retornadas do proc armazenado.

A solução é usar tabelas persistentes. Por exemplo, você pode ter uma tabela permanente em seu banco de dados chamada someSPResults. Sempre que someSP for alterado para ter um número diferente de colunas de saída, altere o formato de someSPResults como parte da implantação.

Então você pode fazer isso:
insert into dbo.someSPresults
exec someSP

Ou dentro de someSP, você pode inserir os resultados diretamente na tabela someSPresults como uma parte normal da execução. Você só precisa ter certeza de identificar exatamente quais registros na tabela someSPresults vieram de cada execução de someSP, porque esse proc armazenado pode ser disparado várias vezes simultaneamente, despejando muitos dados em someSPresults.