Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] disparador o trigger para una base de datos de una tienda

Estas en el tema de disparador o trigger para una base de datos de una tienda en el foro de SQL Server en Foros del Web. Hola tengo un pequeño problema y espero que alguien me pueda ayudar ,tengo que hacer un disparador sobre la tabla de productos que cuando se ...
  #1 (permalink)  
Antiguo 03/01/2015, 00:26
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Pregunta disparador o trigger para una base de datos de una tienda

Hola tengo un pequeño problema y espero que alguien me pueda ayudar ,tengo que hacer un disparador sobre la tabla de productos que cuando se haga una venta y el producto llegue a 0 se elimine el producto no se si sea posible esto?

este es mi script de la tabla de productos:

Código SQL:
Ver original
  1. CREATE TABLE productos
  2. (codpro VARCHAR(5),
  3. nombrepro VARCHAR(40) NOT NULL,
  4. detalle VARCHAR(40)UNIQUE NOT NULL,
  5. proveedor VARCHAR(40)NOT NULL,
  6. precio VARCHAR(10)NOT NULL,
  7. stock VARCHAR(20),
  8. PRIMARY KEY (codpro))

Última edición por gnzsoloyo; 05/01/2015 a las 10:38 Razón: Pésimo etiquetado
  #2 (permalink)  
Antiguo 03/01/2015, 10:30
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 11 meses
Puntos: 13
Respuesta: disparador o trigger para una base de datos de una tienda

Si que es posible,
Crealo para modificacion, cada vez que se modifique un registro, compruebe el stock si es 0 o menor (si acaso lo permite) pues puedes eliminar el registro de la tabla.

¿Has probado?
¿que error te da?

Veo que Stock es varchar.... normalmente en stock se almacena un numero.
  #3 (permalink)  
Antiguo 04/01/2015, 20:54
 
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 10 años
Puntos: 0
Respuesta: disparador o trigger para una base de datos de una tienda

Gracias por la ayuda, ya modifique el Stock a int y el disparador ya lo realize me quedo asi:

Código SQL:
Ver original
  1. CREATE TRIGGER ValidarStock
  2.  ON productos
  3.  after UPDATE
  4.  AS
  5.  IF UPDATE(stock)
  6.    BEGIN
  7.      DECLARE @codpro VARCHAR(5)  
  8.      DECLARE @stock VARCHAR(20)
  9.      
  10.      
  11.      SELECT @codpro = codpro FROM inserted
  12.      SET @stock=(SELECT stock FROM productos WHERE codpro=@codpro)
  13.      
  14.    
  15.      IF @stock =0
  16.      BEGIN
  17.       DELETE productos WHERE stock=0
  18.  
  19.    END
  20.    END

y funciona ahorita que lo probé, alguna sugerencia para modificarlo o algo??

Última edición por gnzsoloyo; 05/01/2015 a las 10:39 Razón: Mal etiquetado
  #4 (permalink)  
Antiguo 05/01/2015, 03:15
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 11 meses
Puntos: 13
Respuesta: disparador o trigger para una base de datos de una tienda

Cita:
Iniciado por ivan9496 Ver Mensaje
alguna sugerencia para modificarlo o algo??
Bueno, pues el campo precio debiera ser decimal, si los usas, o int si no,
El campo proveedor, deberia ser una FK a la id correspondiente de la tabla de proveedores.
  #5 (permalink)  
Antiguo 05/01/2015, 10:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: disparador o trigger para una base de datos de una tienda

A mi me queda la duda, ¿Por qué hacerlo con un trigger y no con el procedimiento que afecta el campo de la tabla producto?
__________________
MCTS Isaias Islas

Etiquetas: disparador, trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:43.