|
|
|
|
|
 |
 |
 |
|
Foros MUGPERU
|
 |
 |
| 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
|
 |
 |
 |
 |
|
|
|
|
|
|
|
|
|