SQL - Exec en Variable tipo tabla

   
Vista:

Exec en Variable tipo tabla

Publicado por Carmen (10 intervenciones) el 01/06/2011 15:23:35
Holaa! buen dia!

Alguien sabe si es posible insertar en una variable tipo tabla el resultado de un exec de un store procedure?

INSERT INTO @temptable
EXEC store @parametro1,@parametro2

me aparece el siguiente error:
EXECUTE cannot be used as a source when inserting into a table variable.


Gracias de Antemano..

Carmen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Exec en Variable tipo tabla

Publicado por Leonardo Josué (880 intervenciones) el 01/06/2011 16:33:47
Hola Carmen:

lo que quieres hacer es perfectamente válido para SQL Server 2005 y posteriores, pero no estoy seguro de si funciona para 2000

Sólo habría que revisar que los campos que regresa tu SP tenga la misma estructura que tu tabla, tanto en tipo como en longitud:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE dbo.t_ejemplo (entero int, cadena varchar(10))
INSERT INTO dbo.t_ejemplo VALUES (1, 'uno')
INSERT INTO dbo.t_ejemplo VALUES (2, 'dos')
INSERT INTO dbo.t_ejemplo VALUES (3, 'tres')
INSERT INTO dbo.t_ejemplo VALUES (14, 'catorce')
INSERT INTO dbo.t_ejemplo VALUES (15, 'quince')
 
CREATE PROCEDURE [dbo].[sp_ejemplo]
AS
SELECT * FROM dbo.t_ejemplo WHERE entero < 10
RETURN
 
DECLARE @Tabla TABLE (campo1 int, campo2 varchar(10))
 
INSERT INTO @Tabla (campo1, campo2) EXEC dbo.sp_ejemplo
 
SELECT * FROM @Tabla


Este ejemplo debería de funcionar.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exec en Variable tipo tabla

Publicado por Carmen (10 intervenciones) el 01/06/2011 16:58:54
Holaaa Leoo!

Probe el codigo que me pasaste.. Me marco el mismo error...
Lo mas probable es lo que mencionas para 2000 no funciona.. habra otra solucion para no repetir el codigo del store?

Gracias por el apoyo.

Saludos!
Carmen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exec en Variable tipo tabla

Publicado por Carmen (10 intervenciones) el 01/06/2011 17:43:00
Encontre la siguiente reestriccion en internet

Como excepciones, table no puede utilizarse en las siguientes instrucciones:

INSERT INTO table_variable EXEC stored_procedure
SELECT select_list INTO table_variable statements.

Saludos!

Carmen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exec en Variable tipo tabla

Publicado por Leonardo Josué (880 intervenciones) el 01/06/2011 18:27:59
Mmm... me parece raro, ya que efectivamente, la documentación indica que no se podría utilizar hacer, sin embargo el script que pongo funciona perfectamente para SQL Server 2005. de hecho puedes ejecutarlo y no debería de dar problemas. Lo único diferente que veo es que en el ejemplo estoy listando los campos que se van a insertar en la tabla,

NSERT INTO @Tabla (campo1, campo2) EXEC dbo.sp_ejemplo

mientras que la forma en que estás tratando de utilizarlo no los pones, sería cuestión de que hagas al prueba y nos comentes.

saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar