MUGPERU
  Search 
Thursday, January 08, 2009 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Ejecutar storeprocedure dentro de otro
Prev Next
You are not authorized to post a reply.

Author Messages
dltlpz
Posts:16

22/02/2007 09:25 AM  
Hola a todos, como stan, a ver si me pueden hechar una mano, gracias!
pues tengo un store procedure, dentro de el ejecuto otro sp, lo cual lo esta haciendo bien xq imprime los resultados, pero lo q no se es como obtenerlo, para q se tenga una idea el sp funciona algo asi :

CREATE PROCEDURE sp_act_prueba
    @codigoperiodo varchar(6) 
AS
SET NOCOUNT ON
BEGIN

DECLARE @codigoperiodoant varchar(6)

-- Al ejecutar sp_act_datosperiodo, lo hace bien xq dentro de el hice unos print y si genera los resultados
 EXECUTE sp_act_datosperiodo @codigoperiodo, @codigoperiodoant

-- Aqui es mi problema, me devuelve NULL
 SELECT @codigoperiodoant
-- se supone q el parametro @codigoperiodoant ya lo obtuve al ejecutar sp_act_datosperiodo

...
...
...
...

END
SET NOCOUNT OFF

gracias
salu2
Picasso
Posts:13

22/02/2007 09:39 AM  
Hola, al parecer ese parametro que la pasas y que te va a retornar es de tipo output asi que debes de asignar la palabrita esta para que pueda obtener el dato, algo así supongo que debe de ser tu procedimiento

create procedure sp_act_datosperiodo
@codigoperiodo (),
@codigoperiodoant () output
as
begin
....
end
go


al invocarlo seria algo mas o menos así

EXECUTE sp_act_datosperiodo @codigoperiodo, @codigoperiodoant output

y si todo resultado bien entonces te devera de devolver tu resultado.

saludos

ypicasso@quimicasuiza.com
riccarrasco
Posts:3

22/02/2007 09:53 AM  
Si necesitas obtener solo un valor, yo creo que redefiniria el Stored Procedure sp_act_datosperiodo como Function que retorne un scalar value. Basta con dar una mirada a SQL books online para ver la sintaxis.
Por otro lado, no es una buena practica nombrar stored procedures de usuario con el prefijo sp_
Saludos,

Ricardo Carrasco MCSD
dltlpz
Posts:16

22/02/2007 09:58 AM  
Hola Picasso, y muchas gracias !!, esa es la solucion, tienes toda la razon, es necesario poner akella palabrita magica output como bien lo muestras tu, y sale el resultado .... con eso me stoy ahorrando muchas lineas de codigo .. thanks !!

salu2
Picasso
Posts:13

22/02/2007 10:05 AM  
Ricardo, yo no se mucho sobre GoodPractices, pero podrias especificarme porque motivo no es buena practica colocarle el prefijo "sp_" a un procedimiento de usuario, bueno a mi me enseñaron asi y no le veo nada de malo, pero te repito aun no se nada de GoodPractices asi que espero tu respuesta.

dltlpz, no te preocupes, para que estan los foros, creo que entre todos deberiamos de ayudarnos y ser humildes con lo que sabemos. Saludos y cuidate, ah mi msn es yoel_picasso@hotmail.com
dltlpz
Posts:16

22/02/2007 10:09 AM  
Hola Ricardo, pues si, seria una buena idea manejarlo como un function,  xq claro al final y al cabo yo necesito q me devuelva un valor, lo voy a tener en cuenta .... ahora cual seria la mejor practica para nombrar un stored procedure de usuario
gracias

salu2
DENSOFT
Posts:91

13/04/2007 03:33 PM  

Hola esto lo lei de una pagina:
Usar el prefijo sp_ para nombrar nuestros procedimientos almacenados NO es la mejor idea.

La razón es muy simple: SQL Server reconoce el prefijo sp_ como 'System Stored Procedure', es decir, un procedimiento almacenado de Sistema.

Esa caracteristica influye en la estrategia que SQL Server utiliza para localizar el SP cuando intentamos ejecutarlo. Por ejemplo, si lanzamos una instrucción exec sp_persona_delete, SQL Server asume que se trata de un procedimiento almacenado de sistema, y por tanto debe encontrarse en la Base de Datos MASTER, donde residen todos los demás procedimientos almacenados de este tipo. Entonces primeramente intenta localizar el procedimiento en la BD Master. Al no encontrarlo, recién intenta encontrarlo en la BD activa.



Ahora para nombrar tus procediemtos usa tu propia nomemclatura algunos ponen TABLA1_ELIMINAR, TABLA1_INSERTAR. bueno eso queda a tu criterio.

saludos.

DENSOFT

You are not authorized to post a reply.



ActiveForums 3.7
        
Copyright 2001-2008 MUGPERU   Terms Of Use  Privacy Statement