SQL查找不再存在的引用ID

时间:2016-09-22 00:07:52

标签: sql sql-server sql-server-2008

我有这些表格:

  • tblCustomer(CustomerID)
  • tblCustomerInqry(CustomerID,CustInqryID)
  • tblSpecificConsideration(CustInqryID)

我有这个脚本,它让我检查客户的查询是否仍然存在,即使客户被删除:

SELECT 
    p.CustomerID
FROM
    tblCustomerInqry p
LEFT JOIN 
    tblCustomer v ON v.CustomerID = p.CustomerID
WHERE
    v.CustomerID IS NULL
    AND p.CustomerID IS NOT NULL

运行此查询后,我需要从tblCustomerInqry中删除不存在的客户查询。客户查询还在表tblSpecificConsideration中提及CustInqryID,也需要删除。

感谢。

1 个答案:

答案 0 :(得分:0)

首先,你应该使用外键真正做到这一点。定义外键时,可以定义级联约束。这些指定了删除值时会发生什么 - 您可以自动删除引用记录。

您可以删除:

a

您需要按此顺序执行删除操作,因此请在特定注意事项之前删除查询。

但是,最好的方法是让数据库通过使用级联删除来完成工作。