• This should be enough to UPDATE the udf table:


    UPDATE udf
    SET Value = CASE udf.fieldno WHEN 1 THEN udf1 WHEN 2 THEN udf2 WHEN 3 THEN udf3
      WHEN 4 THEN udf4 WHEN 5 THEN udf5 END
    FROM udf
    INNER JOIN UserImport UI ON UI.userid = udf.userid

    Full example: 

    use tempdb;
    create table users
    (
    userid int,
    firstname varchar(25),
    lastname varchar(25),
    middlename varchar(25)
    );

    insert into users values (1,'some','dude','big');

    create table udf(userid int,fieldno int, value varchar(25));

    insert into udf values (1,1,'123456');
    insert into udf values (1,2,'text1');
    insert into udf values (1,3,'01/01/2018');
    insert into udf values (1,4,'Text2');
    insert into udf values (1,5,'Text3');

    create table userimport
    (
    userid int
    ,firstname varchar(25)
    ,lastname varchar(25)
    ,middlename varchar(25)
    ,udf1 varchar(25)
    ,udf2 varchar(25)
    ,udf3 varchar(25)
    ,udf4 varchar(25)
    ,udf5 varchar(25)
    );

    insert into userimport values(1,'some','dude','big','New1','New2','New3','New4','New5');

    SELECT 'Before', * FROM udf

    UPDATE udf
    SET Value = CASE udf.fieldno WHEN 1 THEN udf1 WHEN 2 THEN udf2 WHEN 3 THEN udf3
      WHEN 4 THEN udf4 WHEN 5 THEN udf5 END
    FROM udf
    INNER JOIN UserImport UI ON UI.userid = udf.userid

    SELECT 'After', * FROM udf

    drop table users
    drop table udf
    drop table userimport

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.