当您在表中创建外键约束并且在MS SQL Management Studio中创建脚本时,它看起来像这样。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
我不明白是什么目的有第二个改变与检查约束。 是不是创建足够的FK约束?您是否必须添加检查约束以确保参考完整性?
另一个问题:如果直接在列定义中写入,它会是什么样子?
CREATE TABLE T1 (
my_column INT NOT NULL CONSTRAINT FK_T1 REFERENCES T2(my_column)
)
这不够吗?
确定..它不会默认启用?因为在我看来,如果我在创建表时写入约束,它应该默认启用。 – 2010-05-28 08:19:45
我想为你的第二个问题得到答案,我读到的所有文档都说fk约束将在默认情况下强制执行现有列中的规则,所以我相信第二个语句是不必要的。 – Ernesto 2011-06-21 13:26:54