删除主键行,它是另一个表的外键

ara*_*ind 5 sql t-sql sql-server sql-server-2008

假设有一个包含主键的主表,另一个表包含该主表的外键.所以如果我们删除主表的行只是不是子表.

Ole*_*Dok 6

您应该在FKey上设置一些特定选项,例如ON DELETE {CASCADE,SET NULL,SET DEFAULT}

相反,您将无法删除引用的行,因为由于引用完整性,sql server禁止它.

因此,选项是将引用表的值设置为NULL或任何其他DEFAULT值.

或者删除它

或者,如果您的引用行在没有父行的情况下具有某些含义 - 那么您的数据库设计出现问题 - 您不需要FKey或模式未规范化.