在這裏遇到一些麻煩。在多列上使用連接的SQL Server更新語句
表1:
CID, Name, HID
(001-233, Test1, 12345)
表2:
CID, Name, HID, Primary
(001-233, Test1, 12345, '')
想要更新Table2
其中加入與Table1
存在一個名爲恆定值'Y'
所以語句如下:
UPDATE T2 SET T2.Primary = 'Y'
FROM T2
INNER JOIN T1
ON (T1.CID = T2.CID
AND T1.HID = T2.HID)
此聲明只是更新所有行,就像它只在一個id上進行連接而不在另一個上進行連接?我終於放棄了,並通過連接兩個ide字段CID + HID做了一個帶有單個「id」的子查詢。但我想明白爲什麼這沒有使用正確的連接工作。
Table1
是CTE ..
這應該工作,您可以加入,你會期望不被更新了一些示例數據? – Andomar 2012-04-11 17:03:01
這對我很有用。我想它會更新所有行,因爲T1中的每一行都有匹配的行。 – Phil 2012-04-11 17:08:03
不工作,T1是CTE。我沒有得到它,這讓我瘋狂。它工作的另一種方式,我只是沒有得到它。 – sridawg 2012-04-11 17:09:59