You definitely don't want to do cursors.

You want to do:
Code:
UPDATE
   MainTable   MT
SET
   (
   Col2   ,
   Col3   ,
   Col4
   )   =   (
         SELECT
            Col2   ,
            Col3   ,
            Col4
         FROM
            TempTable   TT
         WHERE
            TT.Col1   =   MT.Col1
         )
WHERE
   EXISTS
      (
      SELECT
         1
      FROM
         TempTable   TT
         WHERE
            TT.Col1   =   MT.Col1
      )
followed by
Code:
INSERT INTO 
   MainTable
      (
      Col1   ,
      Col2   ,
      Col3   ,
      Col4
      )
SELECT
   Col1   ,
   Col2   ,
   Col3   ,
   Col4
FROM
   TempTable TT
WHERE
   NOT EXISTS
      (
      SELECT
         1
      FROM
         MainTable   MT
      WHERE
         MT.Col1   =   TT.Col1
      )
- Chris