在SQL Server上執行以下操作時,我期望NULL更新值爲88888888,但它會插入新行。 有人可以告訴我我做錯了什麼嗎?MERGE語句未更新
USE tempdb;
CREATE TABLE TableA (ColA CHAR(8), ColB CHAR(8))
CREATE TABLE TableB (ColA CHAR(8), ColB CHAR(8))
INSERT INTO TableA VALUES ('XXXXXXXX', NULL)
INSERT INTO TableA VALUES ('XXXXXXXX', '88888888')
MERGE INTO TableB AS T
USING TableA AS S
ON T.ColA = S.ColA and T.ColB = S.ColB
WHEN MATCHED
THEN
UPDATE
SET T.ColA = S.ColA, T.ColB = S.ColB
WHEN NOT MATCHED BY TARGET
THEN
INSERT (ColA, ColB) VALUES (S.ColA, S.ColB);
SELECT * FROM TableA
SELECT * FROM TableB
DROP TABLE TableA
DROP TABLE TableB
非常感謝! 最好的問候, 史蒂夫
嗨索南,你是對的,那些可以被刪除,但結果還是一樣。謝謝! – Brainlock