Let's try this for starters...declare @EMPLOYEE TABLE ( NAME VARCHAR(50), ID INT, DEPARTMENT CHAR(50), SECTION CHAR(50), BLOCK CHAR(50), DESIGNATION CHAR(50))declare @ACTIVITY TABLE ( NAME CHAR(50), HOBBIES CHAR(50), AWARDS INT, AGE INT)declare @NAME VARCHAR, @ID INT, @DEPARTMENT CHAR, @XML xmlset @NAME = 'A'; set @ID = 1; set @DEPARTMENT = 'B'set @XML = '<details><hobbies>bhhjh</hobbies><awards>3</awards> <age>5</age></details>'insert @EMPLOYEE (NAME, ID, DEPARTMENT) select @NAME, @ID, @DEPARTMENTinsert @ACTIVITY (NAME, HOBBIES, AWARDS, AGE)select @NAME, c.value('./hobbies[1]', 'CHAR(50)') hobbies, c.value('./awards[1]', 'INT') awards, c.value('./age[1]', 'INT') agefrom @XML.nodes('details') T(c)select * from @EMPLOYEEselect * from @ACTIVITYRyan Randall - Yak of all tradesSolutions are easy. Understanding the problem, now, that's the hard part.