2012-04-11 37 views
5

Hola Tengo un proceso llamado Test_ProcA y deseo llamar al Test_ProcB. Creé una tabla temporal llamada #temp con nombres coincidentes y tipos de datos devueltos por Test_ProcB.No se puede anidar una instrucción de inserción de inserción

Cómo se inserta el conjunto de resultados devuelto por Test_ProcB en #temp. Cuando trato de hacerlo sigo recibiendo este error:

An INSERT EXEC statement cannot be nested.

Cualquier idea y sugerencia sobre lo que se necesita hacer.

Respuesta

11

Te estás dirigiendo a una pesadilla de mantenimiento total. Aquí hay un artículo antiguo (que aún recibe actualizaciones) sobre el problema que está experimentando con algunas formas alternativas de hacer lo mismo.

http://www.sommarskog.se/share_data.html

4

Cuando se crea un procedimiento almacenado de SQL Server se puede tener una inserción en #temptable de otro sp_xxx ejecutivo, pero hay que controlar que dentro de este segundo no existen técnicas similares para gestionar los datos. Solo puede tener "un nivel" y los "anidados" pueden causar los errores.

Tendrás que extraer el código y administrarlo dentro del procedimiento almacenado de primer nivel, este es mi enfoque.

-1

Esta sentencia funciona si se ejecuta el SP de un servidor vinculado,

Creo que es debido a la "Niveles" mencionados por @Massimo Sedda

Saludos!

Cuestiones relacionadas