sql server外键的删除及更新规则


  本文标签:sql server外键

  sql server外键的相关规则是我们在学习SQL数据库中都需要知道和掌握的,下面就将为您详细介绍sql server外键的各类规则,供您参考  。

  sql server外键取值规则:空值或参照的主键值  。

  (1)插入非空值时,如果主键表中没有这个值,则不能插入  。
(2)更新时,不能改为主键表中没有的值  。
(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除  。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择  。

  //备注 :
on delete cascade on update cascade(级联更新和删除)
create table reply
{
word_id int foreign key references guest(word_id) on delete cascade on update cascade
}

  表 ,右建=== 修改表,右键 ===关系   ,打开外键关系

  INSERT 和 UPDATE 规范类别

  展开以显示有关该关系的“sql server外键删除规则”和“sql server外键更新规则”的信息  。

  sql server外键删除规则

  指定当数据库的最终用户尝试删除某一行,而该行包含外键关系所涉及的数据时所发生的情况  。如果设置为:

  无操作     显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚  。

  级联       删除包含外键关系中所涉及的数据的所有行  。

  设置空     如果表的所有外键列都可接受空值,则将该值设置为空  。仅适用于 SQL Server 2005  。

  设置默认值 如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值  。仅适用于 SQL Server 2005  。

  sql server外键更新规则

  指定当数据库的用户尝试更新某一行,而该行包含外键关系所涉及的数据时所发生的情况  。如果设置为:

  无操作     显示一条错误信息,告知用户不允许执行该删除操作,DELETE 将被回滚  。

  级联       删除包含外键关系中所涉及的数据的所有行  。

  设置空     如果表的所有外键列都可接受空值,则将该值设置为空  。仅适用于 SQL Server 2005  。

  设置默认值 如果表的所有外键列均已定义默认值,则将该值设置为列定义的默认值  。仅适用于 SQL Server 2005  。