且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

sql server 2005 中的更新语句

更新时间:2023-02-02 22:58:43

最简单的方法是 EXISTS.我假设您想同时检查 Orders 和 OrderItems.这也意味着您只能过滤一次 CustID.

Easiest way is EXISTS. I assume you want to check both Orders and OrderItems. This also means you only filter on CustID once.

UPDATE
   C
SET
   IsDeleted = 1
FROM
   Customers C
WHERE
   C.CustID = 2
   AND
   EXISTS (SELECT *
        FROM
            Orders O
        WHERE
            O.CustID = C.CustID AND O.IsDeleted = 1)
   AND
   EXISTS (SELECT *
        FROM
            Orders O
            JOIN
            OrderItems OI ON O.OrderID = OI.OrderID
        WHERE
            O.CustID = C.CustID AND OI.IsDeleted = 1)