Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Service Pack 2 - duplicate (do not use)

症状

请考虑以下情况:

  • 在 SQL Server 2014 或2016中,你有多个表,每个表都指定了一个主键约束。

  • 通过将外键约束与 "DELETE CASCADE" 操作一起使用,为这些表创建 级联链

  • 为每个表创建一个 AFTER DELETE 触发器。

  • 从父表中删除行。 这会触发 DELETE 触发器和 ON DELETE CASCADE 操作链。

在这种情况下,触发器可能会以错误的顺序发生。

解决方案

在 SQL Server 的以下累积更新中修复了此问题:

SQL Server 2016 RTM 的累积更新5

SQL Server 2016 SP1 的累积更新2

SQL Server 2014 SP2 的累积更新5

SQL Server 2014 的累积更新11(Service Pack 1)

 

SQL Server 的每个新的累积更新包含以前的累积更新中包含的所有修补程序和安全修补程序。 查看 SQL Server 的最新累积更新:

SQL Server 2016 的最新累计更新

SQL Server 2014 的最新累积更新

状态Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

级联引用完整性约束

了解 Microsoft 用于描述软件更新的 术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。