SQL Server更新语句在多个列上使用连接

时间:2012-04-11 16:56:41

标签: sql sql-server

在这里遇到麻烦。

表1:

CID, Name, HID
(001-233, Test1, 12345)

表2:

CID, Name, HID, Primary
(001-233, Test1, 12345, '')

想要更新Table2Table1一起存在且名为'Y'

的常量值的联接UPDATE T2 SET T2.Primary = 'Y' FROM T2 INNER JOIN T1 ON (T1.CID = T2.CID AND T1.HID = T2.HID)

所以声明如下:

WHERE IN

这个语句最终会更新所有行,就像它只在一个id而不是另一个id上进行连接一样?我终于放弃并通过连接两个ide字段CID + HID来做一个带有单个“id”的Table1子查询。但是我想知道为什么使用正确的连接不起作用。

{{1}}是CTE ..

1 个答案:

答案 0 :(得分:0)

update t2 
set (t2.primary) = (select 'Y' from t1 where T1.CID = T2.CID AND T1.HID = T2.HID)