Urgente. Relación de 2 tablas en sqlserver

Tengo 2 tablas:
Tabla1
------
Código (PORQUE)
Texto
Tabla2
------
Código (Porque)
Cod1
Cod2
Quiero que Tabla1. Código tenga integridad referencial con actualización en cascada con Tabla2. Cod1 y Tabla2. Cod2
Al guardar las relaciones, Sql Server 2000 me da error. En access se podía agregar una copia de una tabla, en este caso de Tabla2 y se relacionarían los campos así :
Tabla1. Codigo -----> Tabla2. Cod1 y Tabla1.Codigo -----> Tabla2_1. Cod2
Mi pregunta es : ¿Se puede agregar al diagrama una tabla ya agregada, es decir una copia, si es que así esto me soluciona el problema? ¿o, sino, como hago?
A mi se me ocurre hacer solo la relación
Tabla1. Codigo -----> Tabla2. Cod1
y, luego, la otra relación hacerla mediante triggers. ¿Qué opinas? ¿Qué me va a ser mejor?

1 Respuesta

Respuesta
1
Prueba con la orden:
ALTER TABLE [dbo].[Tabla2] ADD
CONSTRAINT [FK_Tabla2_Tabla1] FOREIGN KEY
(
[Cod1]
) REFERENCES [dbo].[Tabla1] (
[Codigo]
) NOT FOR REPLICATION ,
CONSTRAINT [FK_Tabla2_Tabla1_b] FOREIGN KEY
(
[Cod2]
) REFERENCES [dbo].[Tabla1] (
[Codigo]
) NOT FOR REPLICATION
En teoria deberia funcionar, pruebala y me cuentas...
Buenas. Pues no funciona. Si que se crea la integridad referencial pero yo quiero, ademas de esto, que en el caso de modificar el código de la tabla Tabla1 se haga una actualización en cascada en la tabla Tabla2.
Ya probé en el diagrama a exigirle actualización en cascada pero solo me ddeja en una de las 2 relaciones. Si se la exijo en las 2, me da error. Haz la prueba y ya veras.
A ver si me puedes ayudar. Gracias.
Tienes toda la razón, no se puede hacer mediante código de base de datos.
Esta clase de funcionalidades se debe hacer mediante triggers, y así lo dice el manual:
"By understanding how to create, modify, and maintain triggers, you can use triggers to:
· Cascade changes through related tables in the database.
· Disallow or roll back changes that violate referential integrity, thereby canceling the attempted data modification transaction.
·Enforce restrictions that are more complex than those defined with CHECK constraints.
·Find the difference between the state of a table before and after a data modification and take action(s) based on that difference. "
Parece que esta claro, siento haberte dado una pista falsa, pero pensé que así funcionaría.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas