sql-server – SQL Server检查/ NoCheck生成的脚本中的差异
发布时间:2020-12-12 16:46:09 所属栏目:MsSql教程 来源:网络整理
导读:我正在尝试将模式同步到不同的数据库之间.基本上,我运行任务 – 在两个数据库上使用SQL Server Management Studio(2005)生成脚本,并将输出与diff工具进行比较. 由于某种原因,一个脚本会添加约束WITH CHECK和一个WITH NO CHECK,然后两个约束被重新启用. 我得到
我正在尝试将模式同步到不同的数据库之间.基本上,我运行任务 – >在两个数据库上使用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 第二个数据库生成为 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 所以我有两个问题: >最终结果是一样的吗? 解决方法最终的结果是不一样的!SQL Server不会相信FK的唯一性是不被检查.这意味着如果您在查询中使用列,则需要进行其他处理. 至于为什么它们与不同的服务器不同,请查看sys.foreign_keys中的isnottrusted列.这可能会影响SSMS的产生? 对于更多的这种情况,请查看my other answer与FK&无检查/检查选项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |