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

Como relacionar tablas sql server 2000

Estas en el tema de Como relacionar tablas sql server 2000 en el foro de SQL Server en Foros del Web. hola ase rato que veo la pagina y la encuentro buena soy nuevo en esto asi que perdor si no me expreso bien bueno ahora ...
  #1 (permalink)  
Antiguo 03/02/2009, 07:45
Avatar de figoni  
Fecha de Ingreso: febrero-2009
Ubicación: iquique - chile
Mensajes: 34
Antigüedad: 15 años, 11 meses
Puntos: 0
Como relacionar tablas sql server 2000

hola ase rato que veo la pagina y la encuentro buena
soy nuevo en esto asi que perdor si no me expreso bien

bueno ahora mi drama

la cosa es que tengo que crear dos tablas en sql server 2000
y tambien relacionarlar de uno a mucho y que minimo tenga uno en cada tabla (osea que por ejemplo un padre puede terne minimo un hijo y un hijo puede terner un padre)pense en hacerlo con el enterprise manager y cree dos tablas pero no logro relacionarlas



gracias.
  #2 (permalink)  
Antiguo 03/02/2009, 07:52
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Como relacionar tablas sql server 2000

en la parte de diagramas de la bd, tienes una interfaz grafica para eso.

Seleccionas las tablas y haces las ligas entre ellas, generas llaves primarias, indices, etc..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 03/02/2009, 08:17
Avatar de figoni  
Fecha de Ingreso: febrero-2009
Ubicación: iquique - chile
Mensajes: 34
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como relacionar tablas sql server 2000

entonces ahora que hice eso al guardar un dato por ejemplo un padre afecta a la tabla hijo osea se guardan en las dos tablas o eso es otra cosa
  #4 (permalink)  
Antiguo 03/02/2009, 08:23
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Como relacionar tablas sql server 2000

Agregar una llave foranea (tabla hijo) significa que el campo debe contener un valor dentro de los valores de una llave que se encuentra en otra tabla (tabla padre)...

Y viceversa, no puedes eliminar del padre un valor mientras en la tabla hijo halla registros con ese valor..

Aunque tambien puedes agregar en la relacion efecto cascada(eliminacion y actualizacion), en lo personal yo no lo utilizo, prefiero eliminarlo manualmente para tener identificado el proceso...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 03/02/2009, 08:29
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como relacionar tablas sql server 2000

No sé si he entendido bien lo que dices, pero ahí vaya una explicación que creo que te servirá.

El mecanismo de funcionamiento de las claves ajenas es: en primer lugar tú introduces datos en las tablas con las claves primarias y, a continuación, introduces los datos en las tablas con las claves ajenas. Si en la relación que estableciste marcaste exigir integridad referencial, no podrás introducir para estos campos de clave ajena valores que no existan en la tabla principal para el campo identificado como clave primaria.

Ejemplo:

Tabla "Padre"

IdPadre
NombrePadre

Tabla "Hijo"

IdHijo
NombreHijo
Fk_IdPadre

Si yo tengo los padres con ids 1, 2 y 3, y he marcado integridad referencial, podré introducir un registro en la tabla "Hijo" con Fk_IdPadre=3, pero no con Fk_IdPadre=4.

Respecto a la modificación y el borrado de registros:

En la relación puedes establecer si se producen actualizaciones en cascada. En caso afirmativo, cuando modifques EL VALOR DE CLAVE PRIMARIA de una de las tablas principales (p.ej, IdPadre en "Padre"), se actualizaría el valor de la clave ajena en todos los registros de tablas secundarias que estuviesen referenciando a ese valor (p.ej, Fk_IdPadre en "Hijo"). Pero el mecanismo no funciona al contrario: es decir, si tú cambias el valor de una clave ajena, no cambiará el de la primaria, sino que ocurrirá lo mismo que pasó cuando insertaste el valor de esa clave ajena por primera vez, en caso de haber definido integridad referencial: si el nuevo valor de la clave ajena no se encuentra entre los valores de la clave primaria a la que apunta, no podrás llevar a cabo la modificación.

Para el borrado, el funcionamiento es análogo a la modificación: si estableciste borrado en cascada en la relación, borrar un registro de la tabla principal borrará también los registros de las tablas dependientes que tengan como clave ajena el valor de la clave principal en el registro borrado. Si borras un registro de una tabla dependiente, sólo se borrará ese registro.

Un saludo
  #6 (permalink)  
Antiguo 03/02/2009, 08:54
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Como relacionar tablas sql server 2000

Eso esta mas claro Jesus...

Gracias!



Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 03/02/2009, 09:14
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como relacionar tablas sql server 2000

De nada, espero que sirva :)

Un saludete
  #8 (permalink)  
Antiguo 03/02/2009, 09:19
Avatar de figoni  
Fecha de Ingreso: febrero-2009
Ubicación: iquique - chile
Mensajes: 34
Antigüedad: 15 años, 11 meses
Puntos: 0
De acuerdo Respuesta: Como relacionar tablas sql server 2000

gracias a ambos fue clara la respuesta
:apla uso:
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:09.