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

Consulta para actualizar e insertar registro a la vez

Estas en el tema de Consulta para actualizar e insertar registro a la vez en el foro de SQL Server en Foros del Web. Hola Quisiera ver si me pueden orientar Tengo una tabla que manualmente actualizamos pero ahora me pidieron realizar un script para actualizarla tratè de hacerlo ...
  #1 (permalink)  
Antiguo 24/02/2008, 23:03
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 6 meses
Puntos: 2
Consulta para actualizar e insertar registro a la vez

Hola
Quisiera ver si me pueden orientar
Tengo una tabla que manualmente actualizamos pero ahora me pidieron realizar un script para actualizarla tratè de hacerlo mediante ASP y no lo he conseguido, pero quisiera ver si se podria solucionar esto con una UNICA consulta SQL para que fuera màs sencilla la labor de actualizaciòn

La tabla a actualizar es esta



El funcionamiento de dicha actualizaciòn como lo hacemos manual es el siguiente:
Tenemos una tabla llamada HISTORIA, y supongamos que se requiere actualizar el registro cuyo ID es el 341 (la columna que se desea editar es referencia) , entonces en vez de actualizar dicho campo, se genera otro registro (por ejemplo con el ID 342) con informaciòn identica al del 341, en este nuevo registro hacemos el cambio que necesitamos de la columna referencia. Una vez hecho esto hay que cambiar la columna estatus de uno a cero (lo que indica que ya no es el registro correcto) y en el nuevo registro hay que hacer que la columna estatus tenga el valor de uno (para indicar que es el registro correcto)



La pregunta es

¿¿COMO PODRIA HACER UNA UNICA CONSULTA SQL DONDE PUEDA HACER TODO ESTO DE GOLPE ??





Por favor solicito de su valiosa ayuda para crear la consulta o que me den ideas.

Gracias !!!!!!!!
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #2 (permalink)  
Antiguo 25/02/2008, 16:37
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Consulta para actualizar e insertar registro a la vez

Tendrias que hacer un PROCEDIMIENTO ALMACENADO que reciba como parametros, el ID que deseas actualizar y el valor de la referencia.
  #3 (permalink)  
Antiguo 26/02/2008, 08:29
Avatar de Rinnegan  
Fecha de Ingreso: febrero-2008
Mensajes: 11
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Consulta para actualizar e insertar registro a la vez

Opino lo mismo, tienes que hacer un procedimiento almacenado.

Tu lo que quieres hacer es primero una insercion para generar la 342 con los cambios realizados y luego cambiar el valor del reistro anterior si no me equivoco.

1. Insercion
2. Modificacion

Es imposible hacerlo en una sola consulta.

Si quieres simplemente actualizar y no guardar el registro anterior te bastara con solo hacer un UPDATE.

Código:
UPDATE historia
     SET referencia = 5345346
     WHERE id_historial = 341;
Solo en el caso de que sean integer, numeric, bigint, etc.
si son varchar los encierras entre comillas simples '5345346'

Espero que sirva de algo.

Bye.

Última edición por Rinnegan; 26/02/2008 a las 14:50
  #4 (permalink)  
Antiguo 26/02/2008, 11:35
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Re: Consulta para actualizar e insertar registro a la vez

Coincido, solo asegurate de usar transacciones para que por error no te quede un registro activo.

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #5 (permalink)  
Antiguo 27/02/2008, 16:54
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: Consulta para actualizar e insertar registro a la vez

gracias por su ayuda !!

Creo que si, lo mejor sería un procedimiento almacenado, investigare como le puedo hacer

Saludos a todos !!!
__________________
************************
"La bondad es simple; la maldad, múltiple"
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 13:36.