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

como asocio 2 tablas de esta manera

Estas en el tema de como asocio 2 tablas de esta manera en el foro de SQL Server en Foros del Web. Hola denuevo , tengo una tabla equipos id_equipo primary key nombre ip ... ... ... .etc usuarios id_usuario primary key nombre user_windows contraseña id_equipo foreign ...
  #1 (permalink)  
Antiguo 24/03/2008, 11:47
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 9 meses
Puntos: 0
como asocio 2 tablas de esta manera

Hola denuevo , tengo una
tabla
equipos
id_equipo primary key
nombre
ip
...
...
...
.etc

usuarios
id_usuario primary key
nombre
user_windows
contraseña
id_equipo foreign key id_equipo references id_equipo(equipos)


la tabla equipo ya tiene datos

con este procedimiento trato de asociarlas pero no me funciona
pq tengo como parametro de entrada para asociarlas la ip, para que pueda asociar las primary key de equipos con la foreign de usuarios.

y se pueda llenar los campos de usuarios y enlazar las llaves.

Código PHP:
create proc ingresa_usuario
 
@ip varchar(15)
,@
nombre varchar (50)
,@
user_windows varchar (50)
,@
fecha datetime
,@contrasena varchar(50)


as 
begin
declare @id_equipo int
select 
@id_equipo=equipos.id_equipo
    from equipos
where  
@ip=equipos.ip
end

begin
select 
@fecha=getdate()
from usuarios
end

begin
 insert into usuarios
(nombre,user_windows,fecha,contrasena,id_equipo)
values (@nombre,@user_windows,@fecha,@contrasena,@id_equipo)
end 
Espero ayuda .

Última edición por sabao; 24/03/2008 a las 12:58
  #2 (permalink)  
Antiguo 24/03/2008, 12:57
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
Re: como asocio 2 tablas de esta manera

Primero, la comparacion del where, debe ser en orden diferente

WHERE equipos.ip = @ip

Segunda, en el insert, has mencion a la fecha, no requieres de una variable:

insert into usuarios
(nombre,user_windows,fecha,contrasena,id_equipo)
values (@nombre,@user_windows,GETDATE(),@contrasena,@id_e quipo)
  #3 (permalink)  
Antiguo 24/03/2008, 13:28
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: como asocio 2 tablas de esta manera

Hola gracias , pero tengo un duda mas , al insertar el primer registro la fecha me que ingresa no es la actual sino que asi 1900-01-01 00:00:00.000 , y al ingresar el 2 registrola fecha se ingresa correctamento o sea actual , que sera?? , saludos
  #4 (permalink)  
Antiguo 24/03/2008, 14:17
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
Re: como asocio 2 tablas de esta manera

Esta instruccion, no tiene logica

select @fecha=getdate()
from usuarios

Por tanto, el valor del parametro @fecha estara, o biene en NULL o utilizara '1900-01-01 00:00:00.000'

Saludos.
  #5 (permalink)  
Antiguo 25/03/2008, 05:03
 
Fecha de Ingreso: abril-2006
Ubicación: Santiago ,Chile
Mensajes: 169
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: como asocio 2 tablas de esta manera

Cita:
Iniciado por iislas Ver Mensaje
Esta instruccion, no tiene logica

select @fecha=getdate()
from usuarios

Por tanto, el valor del parametro @fecha estara, o biene en NULL o utilizara '1900-01-01 00:00:00.000'

Saludos.
Hola la deje asi pero al ingresare el p´rimer registro me da la fecha valor 1900-01-01 00:00:00.000'

Código PHP:
create proc ingresa_usuario
 
@ip varchar(15)
,@
nombre varchar (50)
,@
user_windows varchar (50)
,@
contrasena varchar(50)
,@
id_equipo int

as begin
select
@id_equipo=equipos.id_equipo
from equipos
where
equipos
.ip=@ip

 insert into usuarios
(nombre,user_windows,fecha,contrasena,id_equipo)
values (@nombre,@user_windows,getdate(),@contrasena,@id_equipo)
end 
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 00:31.