外键限制了外键列中能放入什么值。如果相关的主键或唯一值在引用表中不存在,那么对表行的lNSERT或UPDATE会失败。这种限制是双向的,如果尝试删除一个主键而外键表中的一行引用了这个键,也会返回错误。因此,在删除目标主键或唯一值之前,需要先删除所有引用外键的行,否则会出现错误。
SQL Server提供了一种自动机制来处理主键/唯一键列中的修改,称作级联修改(cascading change)。在前面的技巧中,我们没有使用级联选项。可以使用ON DELETE和ON UPDATE为删除或修改操作开启级联修改。级联选项的基本语法如一F:
[ ON DELETE{NO ACTION | CASCADE | SET NULL | SET DEFAULT}]
[ ON UPDATE{NO ACTION | CASCADE | SET NULL | SET DEFAULT}]
[ NOT FOR REPLLCATlON]
级联修改参数