Я пытаюсь синхронизировать схемы между различными базами данных. В основном я запускал задачи → Сгенерировать скрипты с помощью SQL Server Management Studio (2005) в обеих базах данных, и я сравниваю вывод с инструментом diff.
По какой-то причине один script добавляет ограничение WITH CHECK и один БЕЗ ПРОВЕРКИ, за которым последуют повторные включения обоих ограничений.
I для первой базы данных, которую я получаю:
ALTER TABLE [dbo].[Profile] WITH CHECK ADD CONSTRAINT [FK_Profile_OrganizationID] FOREIGN KEY([OrganizationID])
REFERENCES [dbo].[Organization] ([OrganizationID])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_Profile_OrganizationID]
GO
Вторая база данных генерируется как
ALTER TABLE [dbo].[Profile] WITH NOCHECK ADD CONSTRAINT [FK_Profile_OrganizationID] FOREIGN KEY([OrganizationID])
REFERENCES [dbo].[Organization] ([OrganizationID])
GO
ALTER TABLE [dbo].[Profile] CHECK CONSTRAINT [FK_Profile_OrganizationID]
GO
У меня есть два вопроса:
-
Является ли конечный результат тем же? ( Edit: Похоже, что многие люди выбирают только первое утверждение двух сценариев. Меня интересует конечный результат всего сценария.)
-
Если конечный результат тот же, почему Management Studio генерирует их по-разному для разных баз данных?