【发布时间】:2013-01-02 13:03:44
【问题描述】:
我有一个与外键有关的问题。我正在使用 SQL Server 2008。
有 2 个表,Customer 和 Invoice,它们看起来像这样:
客户表:
客户ID
名称
地址
发票表:
发票ID
日期
客户编号
Customer 表中的 CustomerID 列是主键,Invoice 表中的 CustomerID 列有一个外键。
我想删除 Customer 表中的一行,但不删除 Invoice 表中的关联行。有没有办法做到这一点?
编辑:
我忘了提到删除的客户存储在日志表中,所以 ID 仍然存在,但在不同的表中
【问题讨论】:
-
您想故意制造数据完整性问题吗?当该客户离开时,customerID 53 在发票表中的含义是什么?
-
在删除时,您应该能够将 FK 值级联为 null。
-
只需将客户标记为非活动。你仍然需要记录。
标签: sql sql-server-2008 foreign-keys