Modificar valor de clave primaria

Cachilapo
15 de Febrero del 2008
Hola tengo un problemilla tengo una relación maestro detalle clasica en sql server 2000, cuando intento modificar el valor del campo que es clave primaria me da este error "UPDATE statement conflicted with COLUMN REFERENCE constraint 'FK_tdetalles_factura_tfacturas'. The conflict occurred in database 'bdemp0', table 'tdetalles_factura', column 'cid_factu'.", no se porque me da este error cuando esta misma tabla maestro esta relacionada con otra tabla detalle y no me este error?
Que puedo hacer?
Sin más a que hacer referencia espero sus respuestas :-)

mvallejos
15 de Febrero del 2008
Tienes un CONSTRAINT que impide que no puedan existir datos de una tabla relacionados a otra

Prueba con esto

SET DISABLE_DEF_CNST_CHK ON

<modificar la PK>

SET DISABLE_DEF_CNST_CHK OFF


Esto es inhabilitar el chequeo de las constraint, hacer lo que necesitas y activarlo nuevamente

Una cosa, el swich DISABLE_DEF_CNST_CHK OFF es probable que ya no sea soportado eb versiones de Sql Server posteriores al 2000

Saludos

mvallejos
15 de Febrero del 2008
Encontré otro modo

Debes saber el nombre del CONSTRAINT de la referencia entre tablas


ALTER TABLE Tabla NOCHECK CONSTRAINT Nombre

<modificar la PK>

ALTER TABLE Tabla CHECK CONSTRAINT Nombre

Saludos