Для SQL Server 2008 взгляните на использование оператора MERGE .
MERGE T1 AS target
USING T2 AS source
ON (target.keyC = source.keyC)
WHEN MATCHED THEN
UPDATE SET c1 = source.c1, c2 = source.c2
WHEN NOT MATCHED THEN
INSERT (keyC, c1, c2)
VALUES (source.keyC, source.c1, source.c2)
РЕДАКТИРОВАТЬ : ОП изменил вопрос с 2008 на 2005
Для более ранних версий вам нужно 2 операции:
UPDATE target
SET c1 = source.c1, c2 = source.c2
FROM T1 AS target
INNER JOIN T2 as source
ON target.keyC = source.keyC
INSERT INTO T1
(keyC, c1, c2)
SELECT keyC, c1, c2
FROM T2
WHERE NOT EXISTS(SELECT NULL FROM T1 WHERE keyC = T2.keyC)