Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Update con 2 tablas diferentes (https://www.clubdelphi.com/foros/showthread.php?t=55855)

wildnetboy 29-04-2008 07:50:42

Update con 2 tablas diferentes
 
Hola espero que esten bien, felipes y contennis....

Bueno pues aca estoy con una duda, estoy realizando el clasico sistemita de inventarios en SQL server 2000, tengo 2 tablas una de detalles, que es la que lleva los detalles de las ventas y una de productos, que es el inventario total en la tienda.
La idea es que cuando inserto el registro en la tabla de detalles esta va a la tabla de productos y descuenta las unidades salidas.
Ahora he creado un trigger en la tabla detalles con la siguiente informacion:

Código SQL [-]
CREATE TRIGGER [Descuenta_Productos] ON [dbo].[Detalles] 
FOR INSERT
AS
UPDATE Productos SET Productos.Unidades = Productos.Unidades-Inserted.Unidades
WHERE Productos.Codigo=Inserted.Codigo

Pero me dice que la tabla inserted no existe, e intentado cambiando el nombre de la tabla de inserted por Detalles cuando hago esto dice: la tabla detalles no existe.

ahora he intentado tambien hacer esto

Código SQL [-]
CREATE TRIGGER [Descuenta_Productos] ON [dbo].[Detalles] 
FOR INSERT
AS
UPDATE Productos SET Productos.Unidades = Productos.Unidades-(SELECT Unidades 
FROM Inserted WHERE Productos.Codigo=Inserted.Codigo)

Pero me manda puros valores nulos, ya le estuve buscando por muchas partes y nada, a ver si alguien me ayuda muchisimo, diciendo como hacerle.

De antemano muchas gracias a todos por molestarse en leer este post

poliburro 29-04-2008 15:27:28

compañero te hace falta la definición de los alias para los valores previos y posteriores. Si inserted es el alias del nuevo valor, te hace falta su definición en el encabezado del triger.

wildnetboy 29-04-2008 22:35:18

Disculpa, pero soy muy nuevo y aun ando experimentando, a ver si me pudieras explicar como hago eso de lo de la definicion de alias en el encabezado del trigger o si pudieras postear el codigo seria exelente, de todas maneras muchas gracias por interesarte.

wildnetboy 30-04-2008 02:52:50

Resuelto
 
Bueno pues ya lo tengo a ver que opinan, pero como digo aun soy nuevo y en muchas paginas que busque no me dicen nada de la clusula from en una sentencia update y ya lo resolvi de todas maneras muchas gracias por su ayuda.
El codigo queda de esta manera

Código SQL [-]
CREATE TRIGGER [Descuenta_Productos] ON [dbo].[Detalles] 
FOR INSERT
AS
UPDATE Productos SET Productos.Unidades = Productos.Unidades-Inserted.Unidades FROM Productos, Inserted where Productos.codigo = Inserted.Codigo


La franja horaria es GMT +2. Ahora son las 23:41:01.

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