SQL 服务器 - 如果该客户存在订单,如何防止客户记录被删除

SQL server - How to prevent customer record being deleted if an order exists for that customer

我有一个链接到 SQL 服务器数据库的 Microsoft 访问文件。目前,用户可以右键单击数据表上的客户记录并 select 删除记录。他们需要能够执行此操作以移除我们不再需要的老客户。

但是,有些客户有未完成的订单,因此不能删除。 SQL 服务器端需要做什么来确保订单 table 中有订单的客户不能从客户 table?

中删除

谢谢

外键就是您要创建的。 master 将是您的 Customer table,而 child(detail)将是您的 Orders table。一旦到位,如果存在任何订单行,则不能删除任何客户行。至少在默认情况下它会以这种方式工作。您可以将外键设置为在通过级联删除删除主行时自动删除子行,但这听起来不像您想要做的。

你可以了解更多here