You can use Upsert in SQL to achieve this. Please find below quick example for the same.
create table dbo.test_source
(
id int identity(1,1),
language varchar(50),
description varchar(100)
)
create table dbo.test_dest
(
id int identity(1,1),
language varchar(50),
description varchar(100)
)
Insert into dbo.test_source values ('English', 'British language')
Insert into dbo.test_source values ('Hindi', 'Indian language')
Insert into dbo.test_source values ('Chinese', 'China')
Insert into dbo.test_dest values ('English', 'British language')
Insert into dbo.test_dest values ('Hindi', 'NA')
SELECT * FROM dbo.test_Source
SELECT * FROM dbo.test_Dest
Result
id language description
----------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------
1 English British language
2 Hindi Indian language
3 Chinese China
id language description
----------- ------------------ -------------
1 English British language
2 Hindi NA
MERGE dbo.test_dest as MyTarget
USING
(
SELECT
ID,
Language,
Description
FROM dbo.test_source
) as MySource
ON MyTarget.Language = MySource.Language
WHEN MATCHED AND NOT
(
MySource.Description = ISNULL(MyTarget.Description, '')
)
THEN
UPDATE
Set MyTarget.Description = MySource.Description
WHEN NOT MATCHED BY TARGET
THEN
INSERT (Language, description)
VALUES (MySource.Language
,MySource.Description);
SELECT * FROM dbo.test_Dest
Result
id language description
----------- -------------------------------------------------- ----------------------------------------------------------------------------------------------------
1 English British language
2 Hindi Indian language
3 Chinese China
We can see record with 2 got updated with source table description and record with id 3 got inserted as it was not exist into destination table.
MERGEdoes this.INSERTandUPDATEin the same statement, apart from with aMERGE. If you don't want to use aMERGEthen you would use an "upsert", which is anUPDATEstatement followed by anINSERTstatement (a search will show you how to write these).ProductDescriptionwith columnsProductID, LanguageID, Description. Then you can do a normal joinedmerge