【发布时间】:2010-11-23 04:55:06
【问题描述】:
我正在尝试将架构同步到不同的数据库。基本上,我在两个数据库上运行任务->使用 SQL Server Management Studio (2005) 生成脚本,并将输出与差异工具进行比较。
由于某种原因,一个脚本添加了约束 WITH CHECK 和一个 WITH NO CHECK,然后重新启用这两个约束。
我获得的第一个数据库:
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
所以我有两个问题:
最终结果是否相同? (编辑: 似乎很多人只接受这两个脚本的第一条语句。我对这两个脚本的最终结果很感兴趣。)
如果最终结果相同,为什么 Management Studio 会针对不同的数据库生成不同的结果?
【问题讨论】:
标签: sql-server sql-server-2005