Я смотрю примерную базу данных AdventureWorks для SQL Server 2008, и я вижу в их сценариях создания, что они имеют тенденцию использовать следующее:
ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD
CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY([ProductID])
REFERENCES [Production].[Product] ([ProductID])
GO
сразу после:
ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT
[FK_ProductCostHistory_Product_ProductID]
GO
Я вижу это для внешних ключей (как здесь), уникальных ограничений и регулярных ограничений CHECK
; Ограничения DEFAULT
используют обычный формат, с которым я больше знаком, например:
ALTER TABLE [Production].[ProductCostHistory] ADD CONSTRAINT
[DF_ProductCostHistory_ModifiedDate] DEFAULT (getdate()) FOR [ModifiedDate]
GO
В чем разница, если таковая имеется, между первым и вторым способом?