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

Insert ó update: Si existe un registro o no existe

Estas en el tema de Insert ó update: Si existe un registro o no existe en el foro de SQL Server en Foros del Web. Hola, soy nuevo en la comunidad y gracias por brindarme este espacio, les cuento que actualmente estoy haciendo una DB de abarrotes, basicamente necesito lo ...
  #1 (permalink)  
Antiguo 07/06/2011, 22:59
 
Fecha de Ingreso: junio-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Insert ó update: Si existe un registro o no existe

Hola, soy nuevo en la comunidad y gracias por brindarme este espacio, les cuento que actualmente estoy haciendo una DB de abarrotes, basicamente necesito lo siguiente.

Tengo estas tablas:
1.- Producto
| idproducto | nombre | ........

2.- Venta
| idventa | total |

3.- Detalle_venta (Productos de la venta)
| iddetventa | idventa | idproducto | cantidad | .......

Necesito que se realice alguna de las siguientes acciones en la tabla 3 al querer agregar otro registro (producto) en Detalle_venta:

1. Si NO existe el idventa e idproducto entonces inserta los datos en Detalle_venta simpre y cuando NO EXISTA UN REGISTRO CREADO.

2. SI EXISTE ya un producto (idventa e idproducto) en la tabla Detalle_venta simplemente realiza una actualizacion a la CANTIDAD del producto ya creado en Detalle_venta, es decir si existe, actualiza la cantidad.
  #2 (permalink)  
Antiguo 08/06/2011, 09:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Insert ó update: Si existe un registro o no existe

Hola jgpe_oceglez22:

¿Cuál es el problema?, en tu post explicas qué es lo que quieres hacer, pero en realidad no nos dices cuál es el problema con el que te enfrentas.

Creo que lo que más te conviene es hacer un Procedimiento almacenado para poder realizar las validaciones que quieres antes de hacer el insert a tu tabla. Investiga un poco acerca de este tema y si continuas con problemas puedes acudir nuevamente al foro para aclarar dudas. Te recuerdo que el foro es para eso, para aclarar dudas o problemas específicos, es conveniente que siempre pongas algo de código en el que estés trabajando a fin de ayudarte a afinarlo.

Saludos
Leo.
  #3 (permalink)  
Antiguo 08/06/2011, 13:29
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Insert ó update: Si existe un registro o no existe

crea un procedimiento almacenado

CREATE PROCEDURE pa_"Nombre_Procedimiento"
go
@Existe

select idProducto from producto
where idProducto = @Existe.

end
  #4 (permalink)  
Antiguo 08/06/2011, 21:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Insert ó update: Si existe un registro o no existe

Toda instruccion, despues del GO, es ignorada en tu CREATE PROCEDURE.
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 08/06/2011, 22:13
 
Fecha de Ingreso: junio-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Insert ó update: Si existe un registro o no existe

Hola!!
Bueno no puse codigo ya que en realidad no se como hacer lo que necesito, lo intente hacer con un trigger pero no pude lograrlo.

Y en si lo que quiero es que en la tabla Detalle_venta al querer agregar un nuevo registro cheque si existe un registro con el idventa e idproducto igual al que se quiere agregar y si es asi se haga un update y actualice la cantidad.
Si ni existe un registro con estos campos se inserte.
  #6 (permalink)  
Antiguo 09/06/2011, 08:48
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Insert ó update: Si existe un registro o no existe

PERDON EN EL PROCEDIMIENTO ALMACENADO
QUE TE PUSE ANTERIORMENTE ME EQUIVOQUE
PARA SABER SI EXISTE UN REGISTRO EN TU TABLA
EL CORRECTO SERIA ESTE.

CREATE PROCEDURE PA_EXISTE_DETALLE_VENTA

@IDdetalle INT,
@EXISTE VARCHAR(5)

OUTPUT
AS

SET @EXISTE = 'NO'

IF EXISTS (select * from detalle where IdDetalle = @IdDetalle )

BEGIN

SET @EXISTE = 'SI'

END

Etiquetas: existe, insert, registro, update
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 16:45.