ON UPDATE 和ON DELETE 指定更新和删除父表中的行时将执行的操作。以下是允许的操作: NO ACTION、 CASCADE、 SET NULL 和SET DEFAULT 删除父表中行的动作 如果您删除父表中的一行或多行,您可以设置以下操作之一: ON DELETE NO ACTION:SQL Server 引发错误并回滚父表中行的删除操作。 ON DELETE CASCADE:SQL Se...
说明:“层叠”在SQL Server 2000中又叫“级联”。 设置空:这是SQL Server 2005新增的功能。如果表的所有外键列都可以接受空值,则将该值设置为空。 说明:要将外键的删除规则和更新规则设为“设置空”,则该外键必须是可以为空的字段。 设置默认值:这是SQL Server 2005新增的功能。如果表的所有外键列都已定义了...
如果在Customers表中对CustomersID执行了UPDATE语句,并且对Orders.CustomersID指定了ON UPDATE CASCADE动作,那么SQL Server将在Orders表中检验一个或多个由之决定的行。如果有这些行的存在,将在Orders表中对这些行和在Customers表中参照的行进行更新。 使用CASCADE选项时,考虑以下因素: 在与其他表有参照关系的表中,可以...
如果更新父表中的一行或多行,则可以设置以下操作之一: ON UPDATE NO ACTION:SQL Server引发错误,并回滚父表中行的更新操作。 ON UPDATE CASCADE:更新父表中的行时,SQL Server将更新子表中的相应行。 ON UPDATE SET NULL:更新父表中的相应行时,SQL Server会将子表中的行设置为NULL。请注意,外键列必须可以为N...
alter table gh_grade add constraint FK_StudentNo foreign key (grade_stuno) references gh_student (stuno) ON DELETE CASCADE 然后执行sql:DELETE FROM gh_student WHERE stuno='001' 再次执行查询:select * from grade 结果如下 grade_stuno grade_lessonno grade ...
update 则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录:on update 和 on delete 后面可以跟的词语有四个no action , set null , set default ,cascadeno action 表示 不做任何操作,set null 表示在外键表中将相应字段设置为nullset default 表示设置为默认值(restrict) cascade 表示级联操作...
本文介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中创建外键关系。 当希望将一个表的行与另一个表的行相关联时,您可在这两个表之间创建关系。 权限 使用外键创建新表需要在数据库中具有CREATE TABLE权限,并对在其中创建表的架构具有ALTER SCHEMA权限。
CASCADE 如果在父表中更新或删除了一行,则将在引用表中更新或删除相应的行。 如果timestamp列是外键或被引用键的一部分,则不能指定 CASCADE。 不能为带有 INSTEAD OF DELETE 触发器的表指定 ON DELETE CASCADE。 对于带有 INSTEAD OF UPDATE 触发器的表,不能指定 ON UPDATE CASCADE。
ON DELETE CASCADE 無法針對具有 INSTEAD OF DELETE 觸發程式的資料表指定。 如果資料表有 INSTEAD OF UPDATE 觸發程序,則不能指定 ON UPDATE CASCADE。 SET NULL 更新或刪除父資料表中的對應資料列時,所有組成外部索引鍵的值都會設定為 NULL。 若要執行這個條件約束,外部索引鍵資料行必須可為 Nul...
对于涉及可更新分区视图和远程表的 INSERT、UPDATE 和 DELETE 操作,忽略 SET ROWCOUNT 选项的设置。设置了成员表和分区视图的定义后,SQL Server 查询优化器将生成智能计划,从而有效利用查询访问成员表中的数据。 通过使用 CHECK 约束定义,查询处理器在成员表间映射键值的分布。 用户发出查询时,查询处理器将映射与 ...