ayuda con UPDATE

18/08/2005 - 04:24 por HUBERT CASIMIRO TACO | Informe spam
Una manito por favor.
Mas o menos este es mi tabla

MITABLA tiene
micampo1 char(10) este es INDICE
micampo2 char(5)
micampo3 char(4)
micampo4 char(5)
micampo5 char(1)
" "
Tengo la siguiente instruccion

UPDATE mitabla SET micampo3 = 'X' WHERE (SELECT micampo3 TOP 1 FROM mitabla
WHERE micampo3 ='01')

Lo que hace es actulizar solo un registro de acuerdo a la instruccion SELECT.
Realmente hace la actualizacion. pero quisiera determinar tambien es cual es
el
registro que actualiza (si pudiera saber cual el micampo1 que es el indice )

Como o con que instrucciones logro capturar el registro afectado (solo es 1)
al menos el campo micampo1.
Estoy accediendo a la Base de datos con ADO.

Quisas es otro el procedimiento, favor de ayudarme en esto.

Quedo muy agradecido de Uds.
Cordialmente.

HUBERT CASIMIRO
LIMA-PERU

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
18/08/2005 - 10:03 | Informe spam
Una solución es hacer un procedimiento almacenado que haga primero un select
y luego el uptate y luego devuelva el valor.

Hasta donde yo se, no creo que sea buena idea utiliza la clausula TOP 1 sin
especificar un ORDER BY por que los resultados que optienes pueden no ser
siempre los mismos, a no ser que tengas un restricción de unicidad en
micampo3 lo que en cualquier caso haria que el SELECT en el WHERE no fuese
necesario.

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 HUBERT CASIMIRO TACO
18/08/2005 - 17:59 | Informe spam
Hola Rodrigo.
Gracias por atender.

Efectivamente me falto poner el ORDER.
UPDATE mitabla SET micampo3 = 'X' WHERE micampo3 = (SELECT micampo3 TOP 1
FROM mitabla WHERE micampo3 ='01' ORDER BY micampo3)
Ahora esta mejor.

Esto hace lo siguiente.
UPDATE actualiza la seleccion de solo UN registro con SELECT .. (TOP 1),

Esto se realiza, hace la actualizacion. El problema esta en: No puedo
identificar cual es el registro que lo hizo, solo me se que lo ha hecho.

La idea es Seleccionar, Bloquear y luego Actualizar y luego soltar.

La unica forma es hacerlo con Procedimientos Almacenados? Esto me devuelve
un Valor hacia mi rutina de comandos? Sabes soy nuevo usando SQL pero igual
me meto. Solo que no he visto aun Procedimientos Almacenados.

Si me dices que es la unica forma podrias Guiarme en esto de Procedimientos
almacenados.
Si tuvieras por ahi una rutina el cual lo modifique y lo pruebe.

Sabes que Amigo, yo vengo de desarrollar usando tablas DBF y alli lo haria
diferente, pero eso ya fue.

Y en SQL me estoy trabando.

Gracias por la ayuda.
Cordialmente.
Hubert Casimiro
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida