相关疑难解决方法(0)

生成的脚本中的SQL Server Check/NoCheck差异

我正在尝试将模式同步到不同的数据库.基本上,我在两个数据库上运行任务 - >使用SQL Server Management Studio生成脚本(2005),并将输出与diff工具进行比较.

出于某种原因,一个脚本添加了约束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
Run Code Online (Sandbox Code Playgroud)

第二个数据库生成为

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
Run Code Online (Sandbox Code Playgroud)

所以我有两个问题:

  1. 最终结果是一样的吗?(编辑: 似乎很多人只关注这两个脚本的第一个语句.我对这两个脚本的最终结果感兴趣.)

  2. 如果最终结果相同,为什么Management Studio会针对不同的数据库生成不同的结果?

sql-server sql-server-2005

26
推荐指数
2
解决办法
3万
查看次数

标签 统计

sql-server ×1

sql-server-2005 ×1