我喜欢外键,但我遇到了一个问题。我有一个转换程序,我禁用外键到表。我这样做的原因是,我可以重新转换主表中的所有记录,但保留其他表不依赖于那个表,而不必每次重新转换它们,因为它们很大。使用外键检查现有数据
我使用这些命令禁用和重新启用外键:
ALTER TABLE MyTable的NOCHECK约束MyConstraint
ALTER TABLE MyTable的CHECK约束MyConstraint
不过,我以后重新启用约束“检查现有数据创建或重新启用”仍然设置为否。我知道它被设置为否,因为我禁用了约束,但通过这样做它改变了我的数据库架构,我不喜欢。我认为这将被视为重新启用约束并检查现有数据,但显然不是。
有没有办法改变这与ALTER TABLE命令?我知道我可以,如果我放弃约束并重新创建它,但我不会编写脚本来重新创建我拥有的每个外键,并保持这一点。
我正在使用SQL Server 2008 R2。
谢谢,你是一个救生员。 –
为了记录,因为我有一段时间在其他地方找到它:“sys.foreign_keys.is_not_trusted”对应于SQL Server Management Studio“外键关系”对话框中的“在创建或重新启用时检查现有数据”。 – leqid