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

registar fecha y hora de 2 tablas ala vez

Estas en el tema de registar fecha y hora de 2 tablas ala vez en el foro de SQL Server en Foros del Web. Hola tengo una base de datos de equipos informatico lo que necesito es guarda en en la tabla historial todo los sucesso del equipo , ...
  #1 (permalink)  
Antiguo 20/03/2008, 08:32
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
De acuerdo registar fecha y hora de 2 tablas ala vez

Hola tengo una base de datos de equipos informatico lo que necesito es guarda en en la tabla historial todo los sucesso del equipo , creacion , modificacion.




tabla equipo

id_equipo automerico primary key
fecha datetime
mac varchar
cpu
.. etc

tabla historial_equipo

id_historial autonumerico primary key
fecha datetime
suceso varchar
diagnostico varchar
id_equipo int foreign key

tengo un formulario que ingresar los datos del pc
quiero que la mismo tiempo en la tabla historial _equipo , se agrege la fecha de creacion

hice un procedimento

Código:
create proc ingresa_equipo
@fecha datetime
,@nombre varchar (50)
,@ip varchar (15)
,@mac varchar (17)
,@cpu varchar(50)
,@memoria varchar(50)
,@disco varchar(50)
,@placa varchar(50)
,@optico varchar(50)
,@red varchar(50)
,@video varchar(50)
,@monitor varchar(50)
,@teclado varchar(50)
,@mouse varchar(50)
 as begin
select @fecha=getdate()
from equipos
end
begin
 insert into equipos
(fecha,nombre,ip,mac,cpu,memoria,disco,placa,u_optica,red,video,monitor,teclado,mouse)
values (@fecha,@nombre,@ip,@mac,@cpu,@memoria,@disco,@placa,@optico,@red,@video,
@monitor,@teclado,@mouse )
end
begin
declare @id_equipo int
select @id_equipo=equipos.id_equipo
from equipos,historial_equipo
where equipos.id_equipo=historial_equipo.id_equipo 
end
begin
insert into historial_equipo(id_equipo,fecha)
values(@id_equipo,@fecha)
end
solo me guarda los datos en la tabla equipo y no en el historial_equipos
me gustaria que me dieran una mano para arreilar este procedimento :)

Última edición por sabao; 20/03/2008 a las 08:43
  #2 (permalink)  
Antiguo 24/03/2008, 06:36
 
Fecha de Ingreso: julio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: registar fecha y hora de 2 tablas ala vez

create proc ingresa_equipo
@nombre varchar (50)
,@ip varchar (15)
,@mac varchar (17)
,@cpu varchar(50)
,@memoria varchar(50)
,@disco varchar(50)
,@placa varchar(50)
,@optico varchar(50)
,@red varchar(50)
,@video varchar(50)
,@monitor varchar(50)
,@teclado varchar(50)
,@mouse varchar(50)
as

begin
select @fecha=getdate()

insert into equipos
(fecha,nombre,ip,mac,cpu,memoria,disco,placa,u_opt ica,red,video,monitor,teclado,mouse)
values (@fecha,@nombre,@ip,@mac,@cpu,@memoria,@disco,@pla ca,@optico,@red,@video,
@monitor,@teclado,@mouse )

declare @id_equipo int
select @id_equipo=equipos.id_equipo
from equipos,historial_equipo
where equipos.id_equipo=historial_equipo.id_equipo

insert into historial_equipo(id_equipo,fecha)
values(@id_equipo,@fecha)


tienes mal gran parte del sql, repasa la documentación o ejemplos sencillos


la variable @fecha sobra en el encabezado

2º from equipos

3º en el procedimiento solo necesitas un begin .. end
  #3 (permalink)  
Antiguo 24/03/2008, 07:12
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: registar fecha y hora de 2 tablas ala vez

Cita:
Iniciado por viviab Ver Mensaje
create proc ingresa_equipo
@nombre varchar (50)
,@ip varchar (15)
,@mac varchar (17)
,@cpu varchar(50)
,@memoria varchar(50)
,@disco varchar(50)
,@placa varchar(50)
,@optico varchar(50)
,@red varchar(50)
,@video varchar(50)
,@monitor varchar(50)
,@teclado varchar(50)
,@mouse varchar(50)
as

begin
select @fecha=getdate()

insert into equipos
(fecha,nombre,ip,mac,cpu,memoria,disco,placa,u_opt ica,red,video,monitor,teclado,mouse)
values (@fecha,@nombre,@ip,@mac,@cpu,@memoria,@disco,@pla ca,@optico,@red,@video,
@monitor,@teclado,@mouse )

declare @id_equipo int
select @id_equipo=equipos.id_equipo
from equipos,historial_equipo
where equipos.id_equipo=historial_equipo.id_equipo

insert into historial_equipo(id_equipo,fecha)
values(@id_equipo,@fecha)


tienes mal gran parte del sql, repasa la documentación o ejemplos sencillos


la variable @fecha sobra en el encabezado

2º from equipos

3º en el procedimiento solo necesitas un begin .. end

Hola ,lo solucione asi

create proc ingresa_equipo
@fecha datetime
,@nombre varchar (50)
,@ip varchar (15)
,@mac varchar (17)
,@cpu varchar(50)
,@memoria varchar(50)
,@disco varchar(50)
,@placa varchar(50)
,@optico varchar(50)
,@red varchar(50)
,@video varchar(50)
,@monitor varchar(50)
,@teclado varchar(50)
,@mouse varchar(50)
as begin
select @fecha=getdate()
from equipos
end
begin
insert into equipos
(fecha,nombre,ip,mac,cpu,memoria,disco,placa,u_opt ica,red,video,monitor,teclado,mouse)
values (@fecha,@nombre,@ip,@mac,@cpu,@memoria,@disco,@pla ca,@optico,@red,@video,@monitor,@teclado,@mouse )
end
begin
declare @suceso varchar(50)
select @fecha=equipos.fecha
,@suceso='Se Registro el equipo'
from equipos
end
begin
declare @id_equipo int
select @id_equipo=equipos.id_equipo
from equipos
end
begin
insert into historial_equipo(id_equipo,fecha,suceso)
values(@id_equipo,@fecha,@suceso)
end


ahora me falta cuando modifico alguna pieza, necesito un update con sentencia case, que modificar una pieza o varias que se inserte en el historial lo que se modifico del equipo, saludos

me tiene pillo alguna sugerencia

Última edición por sabao; 24/03/2008 a las 11:27
  #4 (permalink)  
Antiguo 24/03/2008, 10:41
 
Fecha de Ingreso: julio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: registar fecha y hora de 2 tablas ala vez

No puedes añadir expresiones CASE dentro de un UPDATE, deberás usar algun IF en tu procedimiento, usar algunas variables o usar algun otro método para hacerlo.

salu2
  #5 (permalink)  
Antiguo 24/03/2008, 10:51
 
Fecha de Ingreso: julio-2007
Mensajes: 23
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: registar fecha y hora de 2 tablas ala vez

lo puedes hacer con subconsulta:

UPDATE TABLA SET COLUMNA = t.COLUMNA2 from
(select CASE WHEN COL = 1 THEN 1 ELSE 0 END AS COLUMNA2 from TABLA) t
where .......
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 15:21.