2011-01-04 471 views
9

Duplicar posibles:
How to SELECT * INTO [temp table] FROM [stored procedure]Guardar resultado del procedimiento almacenado en una tabla de variables

Tengo un anidado llamada de procedimiento almacenado

En uno de los procedimientos almacenados quiero guarde el resultado en una variable de tabla como esta:

INSERT INTO @myTable 
EXEC sp_myStoredProcedure 

sin embargo, porque el proceso está anidado se produce el siguiente error: Una instrucción INSERT EXEC no se puede anidar

El procedimiento debe invocarse desde otro procedimiento, cambiar esto no es una opción. Quería tratar de usar un parámetro de salida, pero todavía tiene que establecerse con una instrucción Insertar en.

¿Cuáles son otras opciones para guardar los datos que se recuperan de la llamada de un Procedimiento almacenado en una variable?

+0

Lo que si se llama al procedimiento almacenado usando 'opendatasource'? A menudo evita muchos de estos tipos de limitaciones a expensas de abrir otra conexión al servidor SQL. –

+0

Haga una cosa, llame a sp usando EXECUTE sp_executesql y establezca un parámetro de salida. consulte el enlace: https://support.microsoft.com/en-in/kb/262499 –

Respuesta

-2

no han sido evaluados, pero tal vez hacer esto:

DECLARE @insertedProc as varchar(300) 
SET @insertedProc = 'INSERT INTO ' + @myTable + ' sp_myStoredProcedure' 

EXEC @insertedProc 

Asegúrese de que ha definido lo que es @mitabla antes de la mano.

+4

Esto no funcionará, Jan dijo "Quiero guardar el resultado en una ** variable de tabla **" no una tabla especificada en un variable. – Tony

Cuestiones relacionadas