sql – 删除主键行,这是另一个表的外键

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

解决方法

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

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

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

或者删除

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...