Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/02/2009, 08:29
nephilim2612
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 16 años, 3 meses
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