Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con consulta Update (https://www.clubdelphi.com/foros/showthread.php?t=87732)

nuxbaster 18-02-2015 23:39:02

Problema con consulta Update
 
Buenas tardes :

Tengo dos tablas Articulos y Claves de los articulos, dentro de cada una de ellas tengo una llave primaria, cada articulo puede tener varias Claves de articulos. Ahora quiero hacer un procedimiento con update para actualizar los estatus de los articulos y unir las dos tablas. tengo esta consulta pero cuando ejecuto el procedimiento me modifica todos los articulos y solo quiero me modifique el que le doy en el input clave. Espero me puedan orientar saludos!
Código SQL [-]

begin
UPDATE ARTICULOS T1
SET T1.ESTATUS = :ESTATUS
    WHERE EXISTS (
        SELECT * FROM ARTICULOS T1a
        INNER JOIN CLAVES_ARTICULOS T2 ON T1a.ARTICULO_ID = T2.ARTICULO_ID
        WHERE T2.CLAVE_ARTICULO = :CLAVE
);
end

nuxbaster 19-02-2015 03:35:17

Autorespuesta
 
Se que sus ocupaciones en ocasiones no permiten que nos apoyen pero agradezco su apoyo por al menos revisar mi consulta de momento dejo mi código que funciona para lo que necesito si alguien puede mejorarlo pues sera bien recibido. Saludos!
Código SQL [-]
begin
UPDATE ARTICULOS T1
SET T1.ESTATUS=:ESTATUS
WHERE EXISTS(
    SELECT T2.CLAVE_ARTICULO FROM CLAVES_ARTICULOS T2 WHERE T1.ARTICULO_ID = T2.ARTICULO_ID AND
   T2.CLAVE_ARTICULO=:CLAVE );
end

olbeup 19-02-2015 09:25:58

Hola nuxbaster,

No se con cual motor utilizas, te lo pongo en SQL Server.

Código SQL [-]
UPDATE Articulos
  SET
    ESTATUS = :ESTATUS
  FROM Articulos AS T1
    INNER JOIN Claves_Articulos AS T2
      ON T2.ARTICULO_ID = T1.ARTICULO_ID
  WHERE T2.CLAVE_ARTICULO = :CLAVE

Un saludo.

Casimiro Notevi 19-02-2015 10:11:21

Cita:

Empezado por nuxbaster (Mensaje 488957)
Se que sus ocupaciones en ocasiones no permiten que nos apoyen pero agradezco su apoyo por al menos revisar mi consulta de momento dejo mi código que funciona para lo que necesito si alguien puede mejorarlo pues sera bien recibido. Saludos!

Realmente es por el punto 7 de la guía de estilo.


La franja horaria es GMT +2. Ahora son las 22:11:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi