可能重复:
在T-SQL中反序列化XML数据对象
我有这个XML对象:
<params>
<item>
<idtype>1</idtype>
<name>dsf2</name>
<value>2012-10-05 23:59:59</value>
</item>
<item>
<idtype>2</idtype>
<name>msm1</name>
<value>999</value>
</item>
</params>
Run Code Online (Sandbox Code Playgroud)
如何将值数据保存到像这样的表中:
DECLARE @XML XML = '<params>
<item>
<idtype>1</idtype>
<name>dsf2</name>
<value>2012-10-05 23:59:59</value>
</item>
<item>
<idtype>2</idtype>
<name>msm1</name>
<value>999</value>
</item>
</params>'
INSERT INTO [TableName] ([idtype], [name], [value])
SELECT
[idtype] = TypeNode.value('(idtype)[1]', 'int'),
[name] = TypeNode.value('(name)[1]', 'nvarchar(50)'),
[value] = TypeNode.value('(value)[1]', 'nvarchar(50)')
FROM
@XML.nodes('/params/item') AS XTbl(TypeNode)
Run Code Online (Sandbox Code Playgroud)
顺便说一句:我假设您的表定义如下:
CREATE TABLE [TableName](
[idtype] [int] NULL,
[name] [nvarchar](50) NULL,
[value] [nvarchar](50) NULL
)
Run Code Online (Sandbox Code Playgroud)