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

Insertar y actualizar datos en una misma consulta

Estas en el tema de Insertar y actualizar datos en una misma consulta en el foro de SQL Server en Foros del Web. Hola amigos, tengo una duda, quiero insertar y actualizar tablas distintas pero en una sola consulta, ósea, quiero insertar un dato que no existe en ...
  #1 (permalink)  
Antiguo 30/06/2014, 12:30
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Insertar y actualizar datos en una misma consulta

Hola amigos, tengo una duda, quiero insertar y actualizar tablas distintas pero en una sola consulta, ósea, quiero insertar un dato que no existe en la tabla ASIGNACION y actualizar datos que ya existen de la tabla INGRESO, por ejemplo.


La tabla INGRESO -> CodI, Nombre, Serie, Fecha Estado (Creado, Aprobado)
La talba ASIGNACION -> Codigo, Nombre, CodI

insert into asignación values (1, 'Juan', 2);

update ingreso set Estado='Aprobado' where CodI=2;

Como se puede hacer esto en una consulta, o es que necesariamente se tiene que hacer por separado.

saludos.
  #2 (permalink)  
Antiguo 30/06/2014, 12:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insertar y actualizar datos en una misma consulta

Razonalo de esta forma: Dos acciones diferentes, sobre dos tablas diferentes, usando sentencias que tienen sintaxis diferentes e incompatibles.
¿Qué te sugiere?

Bueno, es bastante obvio:
1) Dos llamas a sentencias diferentes.
2) Una sola llamada a un stored procedure, y resolver la logica de ambas en él.

Elige la que queras.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 30/06/2014, 16:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Insertar y actualizar datos en una misma consulta

este es mi procedimiento almacenado y me funciona bien.

create procedure InsertarActualizar
@Nombre varchar(50),
@CodI int
as
begin
insert into Asignacion values (@Nombre, @CodI)
if exists(select CodI from Ingreso where CodI = @CodigoI)
update Ingreso set Estado = 'Aprobado' where CodI = @CodI
end
go


gracias @gnzsoloyo
  #4 (permalink)  
Antiguo 30/06/2014, 16:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Insertar y actualizar datos en una misma consulta

eso no es insertar en la misma consulta ya que la definicion de procedure es la ejecucion de varias sentencias para obtener un resultado :P,pero que bien que resolviste tu problema
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: tabla
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 19:32.