我不知道如何读取xml数据并将其转换为Tsql中的表?
例如:
<row> <IdInvernadero>8</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>8</IdCaracteristica1> <IdCaracteristica2>8</IdCaracteristica2> <Cantidad>25</Cantidad> <Folio>4568457</Folio> </row> <row> <IdInvernadero>3</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>1</IdCaracteristica1> <IdCaracteristica2>2</IdCaracteristica2> <Cantidad>72</Cantidad> <Folio>4568457</Folio> </row>
至
8 3 8 8 25 4568457 3 3 1 2 72 4568457
谢谢。
这是答案,希望它有助于人:)
首先,它们是如何编写xml的两个变体:
1
<row> <IdInvernadero>8</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>8</IdCaracteristica1> <IdCaracteristica2>8</IdCaracteristica2> <Cantidad>25</Cantidad> <Folio>4568457</Folio> </row> <row> <IdInvernadero>3</IdInvernadero> <IdProducto>3</IdProducto> <IdCaracteristica1>1</IdCaracteristica1> <IdCaracteristica2>2</IdCaracteristica2> <Cantidad>72</Cantidad> <Folio>4568457</Folio> </row>
回答:
SELECT Tbl.Col.value('IdInvernadero[1]','smallint'),Tbl.Col.value('IdProducto[1]',Tbl.Col.value('IdCaracteristica1[1]',Tbl.Col.value('IdCaracteristica2[1]',Tbl.Col.value('Cantidad[1]','int'),Tbl.Col.value('Folio[1]','varchar(7)') FROM @xml.nodes('//row') Tbl(Col)
2。
<row IdInvernadero="8" IdProducto="3" IdCaracteristica1="8" IdCaracteristica2="8" Cantidad ="25" Folio="4568457" /> <row IdInvernadero="3" IdProducto="3" IdCaracteristica1="1" IdCaracteristica2="2" Cantidad ="72" Folio="4568457" />
回答:
SELECT Tbl.Col.value('@IdInvernadero',Tbl.Col.value('@IdProducto',Tbl.Col.value('@IdCaracteristica1',Tbl.Col.value('@IdCaracteristica2',Tbl.Col.value('@Cantidad',Tbl.Col.value('@Folio','varchar(7)') FROM @xml.nodes('//row') Tbl(Col)
取自:
> http://kennyshu.blogspot.com/2007/12/convert-xml-file-to-table-in-sql-2005.html
> http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx