2014-09-22 40 views

回答

1

尽管一些数据库系统支持可延迟的约束,但在SQL Server中,每个单独语句的末尾必须满足所有约束条件。因此,除非外键具有允许继续删除的ON DELETE规范,否则您将无法删除父行,直到没有子行引用它们。

但是应该注意的是,BEGIN...END在这里没有任何影响。它们只是将几个陈述组合在一起的一种手段。即使在支持可延迟约束的数据库系统中,延期交易也按交易处理。交易以BEGIN TRANSACTIONCOMMIT [TRANSACTION](或ROLLBACK)开始并完成,而不是BEGIN ... END