没有显式列名的XML到SQL表

时间:2015-01-22 12:35:37

标签: sql-server xml

我尝试使用XML将数据插入SQL。我已经成功地找到了插入操作。

create table #testTable (name varchar(50), designation varchar(50));

declare @xmldata as xml

set @xmldata = '<?xml version="1.0"?>

<Employees>

<Employee name="John" designation="SE"></Employee>

<Employee name="Adam" designation="ASE"></Employee>

</Employees>'

insert into #testTable

select 

  r.value('@name', 'varchar(50)'),

  r.value('@designation', 'varchar(50)')

from @xmldata.nodes('/Employees/Employee') t(r)

使用此方法时,我需要在手动使用value方法时预先指定列名。

我想要的是一种运行此查询的方法,而不在value()方法中显式指定列,并获取一个表,其中XML属性作为列名称,值作为数据。如果它完成了工作,我愿意将其转换为类型化XML。假设xml列始终符合我现有的表。

提前致谢。

0 个答案:

没有答案