sql >> Base de Datos >  >> RDS >> Sqlserver

Cree dinámicamente una tabla temporal basada en el conjunto de resultados de SP

Respuesta corta:no, no puedes hacer eso.

Debe declarar previamente su tabla temporal con el número exacto de columnas que se devolverán del proceso almacenado.

La solución es usar tablas persistentes. Por ejemplo, podría tener una tabla permanente en su base de datos llamada someSPResults. Siempre que se cambie someSP para tener un número diferente de columnas de salida, cambie el formato de someSPResults como parte de la implementación.

Entonces puedes hacer esto:

insert into dbo.someSPresults
exec someSP

O dentro de someSP, puede hacer que los resultados se inserten directamente en la tabla someSPresults como parte normal de la ejecución. Solo tiene que asegurarse de identificar exactamente qué registros en la tabla someSPresults provienen de cada ejecución de someSP, porque ese proceso almacenado podría activarse varias veces simultáneamente, volcando así una gran cantidad de datos en someSPresults.