May 15, 2012 at 2:35 pm
Is 'TARGET' and 'SOURCE' reserved keyword in SQL server for merge statement?
I was trying
MERGE TABLEA AS T USING TABLEB AS S
ON S.ID=T.ID
WHEN MATCHED AND T.ProductName <> S.ProductName
OR T.Rate <> S.Rate THEN
UPDATE SET T.ProductName = S.ProductName,
T.Rate = S.Rate
WHEN NOT MATCHED BY T THEN --IT DOESN'T LET ME DO THIS
INSERT (ID, ProductName, Rate)
VALUES (S.ID, S.ProductName, S.Rate)
WHEN NOT MATCHED BY S THEN --IT DOESN'T LET ME DO THIS
DELETE;
-- BUT IF I START THE MERGE STATEMENT LIKE THIS
MERGE TABLEA AS TARGET USING TABLEB AS SOURCE -- THEN I CAN DO THE ABOVE, WHAT AM I MISSING??
TARGET.ID=SOURCE.ID
May 15, 2012 at 3:40 pm
Yes - when you use the 'WHEN NOT MATCHED BY' clause, you have to use the keywords 'SOURCE' or 'TARGET'. However, it's ok to alias your actual table names like you did:
MERGE TABLEA AS T
USING TABLEB AS S
ON S.ID=T.ID
http://technet.microsoft.com/en-us/library/bb510625.aspx
_________________________________
seth delconte
http://sqlkeys.com
May 15, 2012 at 3:55 pm
seth delconte (5/15/2012)
Yes - when you use the 'WHEN NOT MATCHED BY' clause, you have to use the keywords 'SOURCE' or 'TARGET'. However, it's ok to alias your actual table names like you did:MERGE TABLEA AS T
USING TABLEB AS S
ON S.ID=T.ID
Thanks Seth. I need to Delete,Inserts and Update which means im gonna need to use 'WHEN NOT MATCHED BY' which follows by having to use keywords 'Source' and 'Target' I guess.
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy