tsql – T-SQL外键检查约束

当您在表中创建外键约束,并在MS SQL Management Studio中创建脚本时,它看起来像这样。

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

我不明白的是,第二个修改的目的是检查约束。
没有足够的FK约束吗?您是否必须添加检查约束以确保参考完整性?

另一个问题:当您直接在列定义中写入时,它将如何看起来呢?

CREATE TABLE T1 (
my_column INT NOT NULL CONSTRAINT FK_T1 REFERENCES T2(my_column)
)

这不够吗?

首先,它创建约束,在这里您可以指定是否应该检查表中的所有数据是否应针对新的约束进行检查。 WITH {CHECK | NOCHECK}

第二部分指定约束是启用的。 ALTER TABLE TableName {CHECK | NOCHECK} CONSTRAINT ConstraintName

http://stackoverflow.com/questions/2927455/t-sql-foreign-key-check-constraint

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:tsql – T-SQL外键检查约束