update en un campo con procedimiento almacenado

20/05/2004 - 11:26 por Jomaweb | Informe spam
Hola

Tengo una tabla con datos de clientes. Y estoy haciendo un procedimiento que
cuando alguien elimina un cliente en una provincia automáticamente se
renumeran unos números identificadores que yo les doy (no sus identity).

Por ejemplo, si tengo
1->juan;
2->pedro;
3->paco;
4->manuel
y en mi aplicacion alguien elimina a Pedro (numero 2) el SP automáticamente
hace un UPDATE y asigna el numero 2 a paco y el 3 a manuel.

Pero hasta ahora no he descubierto cómo coger un SELECT y realizar un
MOVENEXT para ir actualizando el campo. Esto es lo que tengo, pero no
funciona porque no tengo manera de pasar al siguiente registro. ¿dónde me he
perdido?

DECLARE @ITERADOR INTEGER
DECLARE @ID_CLIENTE INTEGER
SET @ITERADOR=0
SELECT * FROM clientes WHERE provincia=@PROV

IF (@@ROWCOUNT<>0)
BEGIN

WHILE (@ROW<=@ITERADOR)
BEGIN
SELECT @ID_CLIENTE=ID_CLIENTE FROM CLIENTES
UPDATE CLIENTES SET CODIGO=@ITERADOR WHERE ID_CLIENTE=@ID_CLIENTE
SET @ITERADOR=@ITERADOR + 1
continue
END
set @mensaje= 'SE RENUMERARON LOS CLIENTES'

select @mensaje as mensaje
 

Leer las respuestas

#1 Rubén Vigón
20/05/2004 - 11:42 | Informe spam
UPDATE Tabla T SET Numero = (SELECT COUNT(*) FROM Tabla WHERE Numero <= T.Numero)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://www.mvp-access.com/rubenvigon

Preguntas similares