Devolucion de parámetros en un procedimiento almacenado...

11/09/2003 - 11:11 por FJB | Informe spam
Hola amigos.

Tengo este procedimiento almacenado:

ALTER PROCEDURE pr_OBTENER_QR_PEDIDO_PRESUPUESTO
AS
BEGIN TRANSACTION


declare @NumPto int
declare @NumPdo int
declare @NumQRNC int
declare @NumPtoInt int

SELECT
@NumPto=NUMERO_PRESU,@NumPdo=NUMERO_PEDIDO,@NumQRNC=NUMERO_
QR_NC,@NumPtoInt=NUMERO_PRESU_INTERNO FROM PARAM_PEDIDOS

if @NumPto is not null and @NumPdo is not null and
@NumQRNC is not null and @NumPtoInt is not null
BEGIN
if @NumQRNC<>''
begin
UPDATE PARAM_PEDIDOS SET
NUMERO_PEDIDO =@NumPdo + 1 ,NUMERO_PRESU_INTERNO
=@NumPtoInt + 1 ,NUMERO_QR_NC =@NumQRNC
end
else
begin
UPDATE PARAM_PEDIDOS SET
NUMERO_PEDIDO =@NumPdo + 1 ,NUMERO_PRESU_INTERNO
=@NumPtoInt + 1 ,NUMERO_QR_NC =null
end


END


SELECT NUMERO_PRESU,NUMERO_PEDIDO-
1,NUMERO_QR_NC,NUMERO_PRESU_INTERNO FROM PARAM_PEDIDOS

COMMIT TRANSACTION


y no se porque al ejecutar el procedimiento me devuelve un
valor, que deduzco es del UPDATE y luego me devuelve los
valores del ultimo SELECT, y yo solo quiero que me
devuelva los valores del SELECT y nada del UPDATE, y ya no
se como hacerlo... alguien sabe como se podría hacer?

Gracias.
 

Leer las respuestas

#1 Miguel Egea
11/09/2003 - 11:25 | Informe spam
pon set nocount on al principio del procedimiento almacenado.


Saludos Cordiales
=Proxima reunión virtual sobre rendimiento
Viernes 12 de Septiembre de 2003, 19:30 hora española.
18:30 hora GMT.
A través del canal #sqlserver del irc hispano

Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"FJB" escribió en el mensaje
news:051001c37844$af4e0120$
Hola amigos.

Tengo este procedimiento almacenado:

ALTER PROCEDURE pr_OBTENER_QR_PEDIDO_PRESUPUESTO
AS
BEGIN TRANSACTION


declare @NumPto int
declare @NumPdo int
declare @NumQRNC int
declare @NumPtoInt int

SELECT
@NumPto=NUMERO_PRESU,@NumPdo=NUMERO_PEDIDO,@NumQRNC=NUMERO_
QR_NC,@NumPtoInt=NUMERO_PRESU_INTERNO FROM PARAM_PEDIDOS

if @NumPto is not null and @NumPdo is not null and
@NumQRNC is not null and @NumPtoInt is not null
BEGIN
if @NumQRNC<>''
begin
UPDATE PARAM_PEDIDOS SET
NUMERO_PEDIDO =@NumPdo + 1 ,NUMERO_PRESU_INTERNO
=@NumPtoInt + 1 ,NUMERO_QR_NC =@NumQRNC
end
else
begin
UPDATE PARAM_PEDIDOS SET
NUMERO_PEDIDO =@NumPdo + 1 ,NUMERO_PRESU_INTERNO
=@NumPtoInt + 1 ,NUMERO_QR_NC =null
end


END


SELECT NUMERO_PRESU,NUMERO_PEDIDO-
1,NUMERO_QR_NC,NUMERO_PRESU_INTERNO FROM PARAM_PEDIDOS

COMMIT TRANSACTION


y no se porque al ejecutar el procedimiento me devuelve un
valor, que deduzco es del UPDATE y luego me devuelve los
valores del ultimo SELECT, y yo solo quiero que me
devuelva los valores del SELECT y nada del UPDATE, y ya no
se como hacerlo... alguien sabe como se podría hacer?

Gracias.

Preguntas similares