Actualizacion de campos
Publicado por Alejandro (1 intervención) el 27/08/2008 20:34:55
Hola que tal.
Tengo un pequeño problema con un problema con este procedimiento almacenado.
Cuando lo ejecuto no me actualiza las tablas que debiesen de hecho no me actualiza nada.
Sera que hice algo mal ya que no encuentro donde esta el error.
Me podrian decir donde cometi el error.
CREATE procedure sp_Pruev_RP
AS
DECLARE @Actual int, @Siguiente int, @RP char(10), @OK int, @OK2 as int, @@sqlstatus as int
Begin tran
---Buscando rangos
declare bus_IDs cursor for
SELECT mezcla.ID,
mezcla.CAMPO3,
(Select min(mezcla1.id)
from mezcla mezcla1
where mezcla1.id>mezcla.id
and mezcla1.campo1=1) AS Expr1
FROM mezcla
WHERE (((mezcla.CAMPO1)=1))
For read only
select @OK =@@error
if @OK2 =0
begin
select @OK2 =@OK
end
Open bus_IDs
While @@error = 0 and @@sqlstatus <>2
Begin
Fetch bus_IDs into @Actual, @RP, @Siguiente
select @OK =@@error
if @OK2 =0
begin
select @OK2 =@OK
end
if @@sqlstatus=0
begin
update mezcla
set campo4=@RP
Where ID between @Actual and @Siguiente;
end
End
Close bus_IDs
if @OK2= 0
begin
Commit Tran
End
else
begin
Rollback Tran
end
go
Por sus comentarios gracias.
Tengo un pequeño problema con un problema con este procedimiento almacenado.
Cuando lo ejecuto no me actualiza las tablas que debiesen de hecho no me actualiza nada.
Sera que hice algo mal ya que no encuentro donde esta el error.
Me podrian decir donde cometi el error.
CREATE procedure sp_Pruev_RP
AS
DECLARE @Actual int, @Siguiente int, @RP char(10), @OK int, @OK2 as int, @@sqlstatus as int
Begin tran
---Buscando rangos
declare bus_IDs cursor for
SELECT mezcla.ID,
mezcla.CAMPO3,
(Select min(mezcla1.id)
from mezcla mezcla1
where mezcla1.id>mezcla.id
and mezcla1.campo1=1) AS Expr1
FROM mezcla
WHERE (((mezcla.CAMPO1)=1))
For read only
select @OK =@@error
if @OK2 =0
begin
select @OK2 =@OK
end
Open bus_IDs
While @@error = 0 and @@sqlstatus <>2
Begin
Fetch bus_IDs into @Actual, @RP, @Siguiente
select @OK =@@error
if @OK2 =0
begin
select @OK2 =@OK
end
if @@sqlstatus=0
begin
update mezcla
set campo4=@RP
Where ID between @Actual and @Siguiente;
end
End
Close bus_IDs
if @OK2= 0
begin
Commit Tran
End
else
begin
Rollback Tran
end
go
Por sus comentarios gracias.
Valora esta pregunta


0