如何使用表B中的信息更新表A中的col

时间:2014-07-17 17:57:07

标签: sql sql-server join sql-update

我正在使用Microsoft SQL Server 2005

我有两张桌子,比方说TableATableB

CREATE TABLE TableA (
A_ItemNumber (int)
A_IsDeleted  (bit)
)

CREATE TABLE TableB (
B_ItemNumber (int)
B_OrderNumber (varchar)
)

INSERT INTO TableB VALUES 
(1, 'XY004005'),
(2, 'XY005125'),
(3, 'XY499999'),
(4, 'XY511340')

我需要编写一个执行以下操作的更新查询:

  1. 获取所有B_ItemNumber的{​​{1}},其中字符串的int部分&lt; 500000 (B_OrderNumbers后将包含XY004005,但004005 < 500000不会包含

  2. 将此项目编号用于XY511340

  3. 我基本上想要将所有UPDATE A_IsDeleted WHERE A_ItemNumber = B_ItemNumber

    A_IsDeleted更改为TRUE

    我认为这可能是一个简单的连接/更新,但它看起来不像是允许的。

1 个答案:

答案 0 :(得分:2)

细节相当稀疏,但是这样的事情会让你接近。

Update A
set IsDeleted = 1
from TableA A
join TableB B on b.ItemNumber = A.ItemNumber
where b.OrderNumber > 'XY004005'
and b.OrderNumber < 'XY500000'