Problema con un Store Procedure

24/01/2006 - 14:52 por Francisco Chávez G | Informe spam
Que tal señores...

tengo el siguiente Store Procedure

/****** Object: Stored Procedure dbo.sp_update_estados_ordenes
Script Date: 24-01-06 09:54 ******/
CREATE PROCEDURE sp_update_estados_ordenes
@ORORDORD int, @ORSTASTA int

AS
update orord set orstasta = @ORSTASTA where orordord @ORORDORD

If (Select orordord from orhis where orordord = @ORORDORD) = 0

begin
Insert into orhis(orordord, orstasta, orhisdat, orhisdol,
orstaold) values(@ORORDORD, @ORSTASTA, getdate(), getdate(), 0)
end
Else
begin
Insert into orhis(orordord, orstasta, orstaOld, orhisdat,
orhisdol) select a.orordord, @ORSTASTA, a.orstasta, getdate(),
a.orhisdat from orhis a, (select Max(orhisdat) fechaant from orhis
where orordord = " & lngOrdenId & ") b where a.orhisdat = b.fechaant
and a.orordord = @ORORDORD
end
GO

lo que pasa es que no entra en el insert del if. La idea es que si no
existe algun registro en la tabla orhis, entre al

Insert into orhis(orordord, orstasta, orhisdat, orhisdol, orstaold)
values(@ORORDORD, @ORSTASTA, getdate(), getdate(), 0)



y si existe al menos un registro.. entre al

Insert into orhis(orordord, orstasta, orstaOld, orhisdat,
orhisdol) select a.orordord, @ORSTASTA, a.orstasta, getdate(),
a.orhisdat from orhis a, (select Max(orhisdat) fechaant from orhis
where orordord = " & lngOrdenId & ") b where a.orhisdat = b.fechaant
and a.orordord = @ORORDORD


el problema es que no entra a ninguno de los dos insert del bloque If
else

por favor alguien que me ayude porque el asunto funcionaba en asp y por
comodidad lo quice pasar a SP y acá no funciona... mil gracias desde
ya.
 

Leer las respuestas

#1 Carlos
24/01/2006 - 15:14 | Informe spam
If (Select orordord from orhis where orordord = @ORORDORD) = 0
Aquí estás devolviendo el valor de la columna orordord y no el nº de
registros.

Deberías utilizar esto:

Select count(*) from orhis where orordord = @ORORDORD

Saludos.

"Francisco Chávez G" escribió:

Que tal señores...

tengo el siguiente Store Procedure

/****** Object: Stored Procedure dbo.sp_update_estados_ordenes
Script Date: 24-01-06 09:54 ******/
CREATE PROCEDURE sp_update_estados_ordenes
@ORORDORD int, @ORSTASTA int

AS
update orord set orstasta = @ORSTASTA where orordord > @ORORDORD

If (Select orordord from orhis where orordord = @ORORDORD) = 0

begin
Insert into orhis(orordord, orstasta, orhisdat, orhisdol,
orstaold) values(@ORORDORD, @ORSTASTA, getdate(), getdate(), 0)
end
Else
begin
Insert into orhis(orordord, orstasta, orstaOld, orhisdat,
orhisdol) select a.orordord, @ORSTASTA, a.orstasta, getdate(),
a.orhisdat from orhis a, (select Max(orhisdat) fechaant from orhis
where orordord = " & lngOrdenId & ") b where a.orhisdat = b.fechaant
and a.orordord = @ORORDORD
end
GO

lo que pasa es que no entra en el insert del if. La idea es que si no
existe algun registro en la tabla orhis, entre al

Insert into orhis(orordord, orstasta, orhisdat, orhisdol, orstaold)
values(@ORORDORD, @ORSTASTA, getdate(), getdate(), 0)



y si existe al menos un registro.. entre al

Insert into orhis(orordord, orstasta, orstaOld, orhisdat,
orhisdol) select a.orordord, @ORSTASTA, a.orstasta, getdate(),
a.orhisdat from orhis a, (select Max(orhisdat) fechaant from orhis
where orordord = " & lngOrdenId & ") b where a.orhisdat = b.fechaant
and a.orordord = @ORORDORD


el problema es que no entra a ninguno de los dos insert del bloque If
else

por favor alguien que me ayude porque el asunto funcionaba en asp y por
comodidad lo quice pasar a SP y acá no funciona... mil gracias desde
ya.


Preguntas similares