Cuando crea una restricción de clave externa en una tabla y crea la secuencia de comandos en MS SQL Management Studio, se ve así.Restricción de comprobación de clave externa de T-SQL
ALTER TABLE T1 WITH CHECK ADD CONSTRAINT FK_T1 FOREIGN KEY(project_id)
REFERENCES T2 (project_id)
GO
ALTER TABLE T1 CHECK CONSTRAINT FK_T1
GO
Lo que no entiendo es qué propósito tiene la segunda alteración con restricción de verificación. ¿No está creando la restricción FK suficiente? ¿Tiene que agregar la restricción de verificación para asegurar la integridad de referencia?
Otra pregunta: ¿cómo se vería entonces cuando la escribiría directamente en la definición de la columna?
CREATE TABLE T1 (
my_column INT NOT NULL CONSTRAINT FK_T1 REFERENCES T2(my_column)
)
¿No es esto suficiente?
bien ... ¿y no estará habilitado por defecto? Porque en mi opinión ... si escribo una restricción al crear una tabla, debería estar habilitada de forma predeterminada. –
Me gustaría obtener una respuesta para su segunda pregunta, toda la documentación que leo dice que la restricción fk hará cumplir la regla en las columnas existentes de forma predeterminada, por lo que creo que la segunda afirmación es innecesaria. – Ernesto