Вот некоторый код, который я написал, чтобы помочь нам идентифицировать и исправить недоверенные ОГРАНИЧЕНИЯ в БАЗЕ ДАННЫХ. Он генерирует код для устранения каждой проблемы.
сматриваю пример базы данных 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
В чем разница, если она есть, между первым и вторым?