WITH CHECK ADD CONSTRAINT seguido por CHECK CONSTRAINT vs. ADD CONSTRAINT

Estou examinando o banco de dados de exemplo AdventureWorks para SQL Server 2008 e vejo nos scripts de criação que eles tendem a usar o seguinte:

ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD 
CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY([ProductID])
  REFERENCES [Production].[Product] ([ProductID])
GO

seguido imediatamente por:

ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT     
[FK_ProductCostHistory_Product_ProductID]
GO

Eu vejo isso para chaves estrangeiras (como aqui), restrições exclusivas e @ regularCHECK restrições;DEFAULTs restrições @ usam o formato regular com o qual estou mais familiarizado, como:

ALTER TABLE [Production].[ProductCostHistory] ADD  CONSTRAINT  
[DF_ProductCostHistory_ModifiedDate]  DEFAULT (getdate()) FOR [ModifiedDate]
GO

Qual é a diferença, se houver, entre fazer da primeira maneira versus a segund

questionAnswers(7)

yourAnswerToTheQuestion