sql server 2005 中的更新语句 [英] Update statement in sql server 2005

查看:36
本文介绍了sql server 2005 中的更新语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑下面的Dig,假设所有三个表都有一列Is_Deleted,默认设置为0...我想更新Is_Deleted=1 Customers 表的字段,其中 CustId=2 仅当包含 CustId=2Is_Deleted=1 的行时OrdersOrderItems表格...我不想使用 Cascade 选项.. 任何建议

Consider the following Dig, Assume that all the three tables have a column Is_Deleted by default it is set to 0... I want to update Is_Deleted=1 field of Customers table where CustId=2 only when the rows containing CustId=2 and Is_Deleted=1 in Orders and OrderItems Tables... I dont want to use Cascade option.. Any suggestion


(来源:microsoft.com)

推荐答案

最简单的方法是 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)

这篇关于sql server 2005 中的更新语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆