Sql 检查生成的脚本中的约束

Sql 检查生成的脚本中的约束,sql,sql-server,tsql,ssms,Sql,Sql Server,Tsql,Ssms,在SSMS、Tasks>Generate Scripts中,我选择了几个表,并在生成的SQL中得到: ALTER TABLE [Project] WITH CHECK ADD CONSTRAINT [FK_Project_aspnet_Users] FOREIGN KEY([UserId]) REFERENCES [aspnet_Users] ([UserId]) GO ALTER TABLE [Project] CHECK CONSTRAINT [FK_Project_aspnet_Use

在SSMS、Tasks>Generate Scripts中,我选择了几个表,并在生成的SQL中得到:

ALTER TABLE [Project]  WITH CHECK ADD  CONSTRAINT [FK_Project_aspnet_Users] FOREIGN KEY([UserId])
REFERENCES [aspnet_Users] ([UserId])
GO
ALTER TABLE [Project] CHECK CONSTRAINT [FK_Project_aspnet_Users]
GO
如果在第一条语句中指定了带检查的
语句,为什么在第二条语句中它要检查?第二条语句直接出现在第一条语句之后


TIA

您正确地观察到它是多余的

这只是SSMS生成脚本的方式

请注意,脚本生成后可以进行修改。第一条语句可以更改为使用“
”而不进行任何检查,第二条语句不会是多余的

第一条语句的目的是添加约束

第二条语句的目的是启用约束

至少,我是这样读剧本的。如果手动逐个运行语句,可能会出现“约束已存在”异常,但该约束可能未启用

我仍然会运行第二条语句,以确保启用现有约束