May be this?CREATE TABLE #userTable (userid INT, logon VARCHAR(255));CREATE TABLE #wFlo (x XML);INSERT INTO #userTable VALUES ('1','abc@abc.com'),('2','bcd@abc.com');INSERT INTO #wFlo VALUES ( '<Parameters> <param name="id">8d878c4d-5376-4763-b27e-4c55e27270fc</param> <param name="sequence">1</param> <param name="logon">abc@abc.com</param> </Parameters>'),( '<Parameters> <param name="id">8d878c4d-5376-4763-b27e-4c55e27270fc</param> <param name="sequence">1</param> <param name="logon">bcd@abc.com</param> </Parameters>');WITH a AS( SELECT x,x.value('(//param[@name="logon"])[1]','varchar(255)') AS logon FROM #wFlo)UPDATE ASET x.modify('insert <param name="userid">{sql:column("u.userid")}</param> as last into (/Parameters)[1]')FROM A INNER JOIN #userTable u ON u.logon = a.logon;SELECT * FROM #wFlo;DROP table #userTable;DROP table #wFlo