Поскольку у вас есть два элемента, которые необходимо очистить, вы можете использовать sql replace в столбце xml_data, чтобы удалить пространство имен из элемента name, а затем элемента age.
Это оставит основной элемент как есть с требуемым пространством имен.
Как заменить строку в столбце таблицы SQL Server
create TABLE [dbo].[foo]
(
cid int not null,
cidtype varchar(1) null,
xml_data varchar(max) null
)
go
insert into foo (cid,cidtype,xml_data) values
(1001,'N','<Main xmlns:json=""http://www.samplenamespace.com/json"" >
<ID json:ValueType=""Number"">1001</ID>
<details>
<name xmlns:json=""http://www.samplenamespace.com/json"">John</name>
<age xmlns:json=""http://www.samplenamespace.com/json"">12</age>
</details>
</Main>')
insert into foo (cid,cidtype,xml_data) values (1003, 'N',
'<Main xmlns:json=""http://www.samplenamespace.com/json"" >
<ID json:ValueType=""Number"">1003</ID>
<details>
<name xmlns:json=""http://www.samplenamespace.com/json"">Diane</name>
<age xmlns:json=""http://www.samplenamespace.com/json"">25</age>
</details>
</Main>')
insert into foo (cid,cidtype,xml_data) values (1004,'N',
'<Main xmlns:json=""http://www.samplenamespace.com/json"" >
<ID json:ValueType=""Number"">1004</ID>
<details>
<name xmlns:json=""http://www.samplenamespace.com/json"">Kippy</name>
<age xmlns:json=""http://www.samplenamespace.com/json"">26</age>
</details>
</Main>')
go
select * from foo
update foo
set xml_data = replace(xml_data, 'name xmlns:json=""http://www.samplenamespace.com/json""', 'name ')
go
update foo
set xml_data = replace(xml_data, 'age xmlns:json=""http://www.samplenamespace.com/json""', 'age ')
go
select * from foo