¿Procedimiento almacenado puede devolver tablas?

29/10/2004 - 12:43 por Felipe Roucher | Informe spam
Sólo es para que me confirmeís:
Un procedimiento almacenado no puede devolver una tabla, ¿verdad?

gracias.

CREATE PROCEDURE myProc
@outparm TABLE
(
Id int
) OUTPUT,
@inparm int
AS
SELECT * FROM Tabla WHERE Id= @inparm
INSERT @outparm SELECT Id FROM Tabla WHERE Id= @inparm
IF (SELECT Count(1) FROM @outparm > 0)
RETURN 0
ELSE
RETURN 99

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
29/10/2004 - 12:59 | Informe spam
Sin problemas...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Felipe Roucher" escribió en el mensaje
news:
Sólo es para que me confirmeís:
Un procedimiento almacenado no puede devolver una tabla, ¿verdad?

gracias.

CREATE PROCEDURE myProc
@outparm TABLE
(
Id int
) OUTPUT,
@inparm int
AS
SELECT * FROM Tabla WHERE Id= @inparm
INSERT @outparm SELECT Id FROM Tabla WHERE Id= @inparm
IF (SELECT Count(1) FROM @outparm > 0)
RETURN 0
ELSE
RETURN 99


Respuesta Responder a este mensaje
#2 qwalgrande
29/10/2004 - 13:04 | Informe spam
Hola.

Por cómo se usa, no puedes devolver una tabla con un sp. Puedes hacerlo con
una función. Lo que sí puedes hacer es devolver un recordset y fuera del sp,
crear la tabla y rellenarla. Es decir:

create proc MyProc as select * from sysobjects

create table #MyTable (...)

insert #MyTable exec MyProc

qwalgrande


"Felipe Roucher" wrote:

Sólo es para que me confirmeís:
Un procedimiento almacenado no puede devolver una tabla, ¿verdad?

gracias.

CREATE PROCEDURE myProc
@outparm TABLE
(
Id int
) OUTPUT,
@inparm int
AS
SELECT * FROM Tabla WHERE Id= @inparm
INSERT @outparm SELECT Id FROM Tabla WHERE Id= @inparm
IF (SELECT Count(1) FROM @outparm > 0)
RETURN 0
ELSE
RETURN 99



Respuesta Responder a este mensaje
#3 Felipe Roucher
29/10/2004 - 13:15 | Informe spam
Si tienes toda la razón. Yo al final he ido tirando por esta vía. Sólo
quería que me lo confirmarais.

Muchas gracias.


"qwalgrande" <qwalgrande*nospam*@yahoo.es> escribió en el mensaje
news:
Hola.

Por cómo se usa, no puedes devolver una tabla con un sp. Puedes hacerlo


con
una función. Lo que sí puedes hacer es devolver un recordset y fuera del


sp,
crear la tabla y rellenarla. Es decir:

create proc MyProc as select * from sysobjects

create table #MyTable (...)

insert #MyTable exec MyProc

qwalgrande


"Felipe Roucher" wrote:

> Sólo es para que me confirmeís:
> Un procedimiento almacenado no puede devolver una tabla, ¿verdad?
>
> gracias.
>
> CREATE PROCEDURE myProc
> @outparm TABLE
> (
> Id int
> ) OUTPUT,
> @inparm int
> AS
> SELECT * FROM Tabla WHERE Id= @inparm
> INSERT @outparm SELECT Id FROM Tabla WHERE Id= @inparm
> IF (SELECT Count(1) FROM @outparm > 0)
> RETURN 0
> ELSE
> RETURN 99
>
>
>
Respuesta Responder a este mensaje
#4 Maxi
29/10/2004 - 14:20 | Informe spam
Sip, es mas es muy recomendado hacerlo :-)

CREATE PROC PEPE AS
SELECT * FROM CUSTOMERS

Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Felipe Roucher" escribió en el mensaje
news:
Sólo es para que me confirmeís:
Un procedimiento almacenado no puede devolver una tabla, ¿verdad?

gracias.

CREATE PROCEDURE myProc
@outparm TABLE
(
Id int
) OUTPUT,
@inparm int
AS
SELECT * FROM Tabla WHERE Id= @inparm
INSERT @outparm SELECT Id FROM Tabla WHERE Id= @inparm
IF (SELECT Count(1) FROM @outparm > 0)
RETURN 0
ELSE
RETURN 99







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida