Problemas con constraints

19/05/2005 - 23:17 por mgs | Informe spam
Buenas.. Tengo un pequeño problema con un constrain..

Tengo el siguiente esquema

(Repito la tabla por ilustración)
Tabla1 Tabla2 Tabla3
TablaT1
CodigoT1 CodigoT1 <- CodigoT1--> CodigoT1
CodigoT2 <-- CodigoT2

CodigoT3 (llave Primaria)


Explicación del problema:

Cuando en la Tabla3 inserto un registro el me valida que exista el registro
en la tabla2 y tabla1 por referencia, pero si una vez insertado modifico el
registro y dejo el campo CodigoT1 en <null> me permite hacerlo, sin decirme
que no existe la referencia en la tabla T2..

Cómo puedo hacer para que si modifico el registro no me permita actualizarlo
si la llave foranea no esta completa?

Preguntas similare

Leer las respuestas

#1 Maxi
20/05/2005 - 02:55 | Informe spam
Hola, algunas formas:

1) Usando triggers
2) En tu Store de Update poner esta logica

nota: me inclino por la segunda :-)


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas
Msn:

Maxi.da[arroba]gmail.com

"mgs" escribió en el mensaje
news:
Buenas.. Tengo un pequeño problema con un constrain..

Tengo el siguiente esquema

(Repito la tabla por ilustración)
Tabla1 Tabla2 Tabla3
TablaT1
CodigoT1 CodigoT1 <- CodigoT1--> CodigoT1
CodigoT2 <-- CodigoT2

CodigoT3 (llave Primaria)


Explicación del problema:

Cuando en la Tabla3 inserto un registro el me valida que exista el
registro
en la tabla2 y tabla1 por referencia, pero si una vez insertado modifico
el
registro y dejo el campo CodigoT1 en <null> me permite hacerlo, sin
decirme
que no existe la referencia en la tabla T2..

Cómo puedo hacer para que si modifico el registro no me permita
actualizarlo
si la llave foranea no esta completa?


Respuesta Responder a este mensaje
#2 Alejandro Mesa
20/05/2005 - 14:17 | Informe spam
Agrega una restriccion mas a las columnas involucradas en la integridad
referencial declarativa y es que no permitan NULL.

Ejemplo:

create table t1(
c1 int not null constraint pk_t1 primary key (c1)
)
go

create table t2(
c1 int not null constraint pk_t2 primary key (c1) ,
c2 int not null constraint fk_t2_c2_t1_c1 foreign key (c2) references t1(c1)
)
go


AMB

"mgs" wrote:

Buenas.. Tengo un pequeño problema con un constrain..

Tengo el siguiente esquema

(Repito la tabla por ilustración)
Tabla1 Tabla2 Tabla3
TablaT1
CodigoT1 CodigoT1 <- CodigoT1--> CodigoT1
CodigoT2 <-- CodigoT2

CodigoT3 (llave Primaria)


Explicación del problema:

Cuando en la Tabla3 inserto un registro el me valida que exista el registro
en la tabla2 y tabla1 por referencia, pero si una vez insertado modifico el
registro y dejo el campo CodigoT1 en <null> me permite hacerlo, sin decirme
que no existe la referencia en la tabla T2..

Cómo puedo hacer para que si modifico el registro no me permita actualizarlo
si la llave foranea no esta completa?



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida