hello fried you can play around with your original data and table structure in below query to get your desired output
DECLARE @Student TABLE (
ID Int,
Name VARCHAR(10)
)
DECLARE @XML1 XML = '<students>
<student><id>1</id><name>ABC</name></student>
<student><id>2</id><name>XYZ</name></student>
<student><id>3</id><name>ABC1</name></student>
<student><id>4</id><name>XYZ1</name></student>
<student><id>5</id><name>CDE1</name></student>
</students>'
DECLARE @XML XML = '<students>
<student><id>1</id><name>ABC1111</name></student>
<student><id>2</id><name>XYZ1111</name></student>
<student><id>3</id><name>ABC1111</name></student>
<student><id>4</id><name>XYZ1111</name></student>
<student><id>5</id><name>CDE1111</name></student>
</students>'
INSERT INTO @Student (ID,Name)
SELECT n.value('./ID[1]','INT') As StudentID
,n.value('./Name[1]','varchar(max)') As StudentName
FROM @XML1.nodes('/Students/Student') x(n)
SELECT * FROM @Student
UPDATE @Student SET Name = AA.StudentName
FROM (
SELECT n.value('./ID[1]','INT') As StudentID
,n.value('./Name[1]','varchar(max)') As StudentName
FROM @XML.nodes('/Students/Student') x(n)
) AS AA
WHERE ID = AA.StudentID
SELECT * FROM @Student