SQL中的依赖关系

时间:2017-05-30 10:20:55

标签: sql-server dependencies

在SQL中,我要删除表A中依赖于表B的数据。
要删除的数据应满足两个条件WorkArea='123' and FileNo='45'

BWorkArea但不包含FileNo的数据 表A包含满足这两个条件的记录。

没有任何参考密钥。为了更加清晰,请在此处添加查询:

从表A中选择*,其中WorkArea ='123',FileNo ='45';

这将生成结果记录。但由于它依赖于表B,我无法直接删除它。此外,要从表B中删除它是不可能的,因为WorkArea中的数据是一个整体,它包含许多文件,我必须删除一个特定的文件。

那么如何删除表A中的数据?

This is Table A with col1 and col2 as primary key.

This is Table B with col1 as a primary key.

1 个答案:

答案 0 :(得分:0)

如果您没有外键,则以下句子将起作用。

DELETE FROM [A] WHERE [WorkArea] = '123' AND [FileNo] = '45';

然后,您可以使用以下请求以编程方式检查表B上是否存在“孤儿”:

SELECT DISTINCT [B].[WorkArea]
FROM [B]
LEFT JOIN [A]
ON [A].[WorkArea] = [B].[WorkArea]
WHERE [A].[WorkArea] IS NULL

要增强此最后一部分并从中生成DELETE句子,只需将此请求的结果存储到临时表中,然后将其用作WHERE语句并使用IN关键字