Estoy mirando la base de datos de ejemplo AdventureWorks para SQL Server 2008, y veo en sus scripts de creación que tienden a usar lo siguiente:
ALTER TABLE [Production].[ProductCostHistory] WITH CHECK ADD
CONSTRAINT [FK_ProductCostHistory_Product_ProductID] FOREIGN KEY([ProductID])
REFERENCES [Production].[Product] ([ProductID])
GO
seguido inmediatamente por:
ALTER TABLE [Production].[ProductCostHistory] CHECK CONSTRAINT
[FK_ProductCostHistory_Product_ProductID]
GO
Veo esto para claves foráneas (como aquí), restricciones únicas y CHECK
restricciones regulares ; DEFAULT
las restricciones usan el formato normal con el que estoy más familiarizado, como por ejemplo:
ALTER TABLE [Production].[ProductCostHistory] ADD CONSTRAINT
[DF_ProductCostHistory_ModifiedDate] DEFAULT (getdate()) FOR [ModifiedDate]
GO
¿Cuál es la diferencia, si hay alguna, entre hacerlo de la primera manera versus la segunda?