使用xml数据更新MS SQL表
我有XML格式的数据,希望将其更新到现有表中。 xml格式的数据如下所示:使用xml数据更新MS SQL表,sql,sql-server,Sql,Sql Server,我有XML格式的数据,希望将其更新到现有表中。 xml格式的数据如下所示: var xmldata = "<ansid>0</ansid><quesid>1</quesid><ansid>1</ansid><quesid>2</quesid><ansid>1</ansid><quesid>3</quesid>" 也许你可以用这个: DECLAR
var xmldata = "<ansid>0</ansid><quesid>1</quesid><ansid>1</ansid><quesid>2</quesid><ansid>1</ansid><quesid>3</quesid>"
也许你可以用这个:
DECLARE @xml xml = '<ansid>0</ansid>
<quesid>1</quesid>
<ansid>1</ansid>
<quesid>2</quesid>
<ansid>1</ansid>
<quesid>3</quesid>'
;
WITH ans as
(
SELECT t.x.value ('.', 'nvarchar(100)') ansid , ROW_NUMBER () OVER (ORDER BY (SELECT NULL)) Seq
FROM @xml.nodes ('ansid') t(x)
), ques as
(
SELECT t.x.value ('.', 'nvarchar(100)') quesid , ROW_NUMBER () OVER (ORDER BY (SELECT NULL)) Seq
FROM @xml.nodes ('quesid') t(x)
)
SELECT ques.quesid, ans.ansid
FROM ans
JOIN ques
ON ques.Seq = ANS.Seq
到目前为止您尝试了什么?您需要分解数据并执行更新连接
DECLARE @xml xml = '<ansid>0</ansid>
<quesid>1</quesid>
<ansid>1</ansid>
<quesid>2</quesid>
<ansid>1</ansid>
<quesid>3</quesid>'
;
WITH ans as
(
SELECT t.x.value ('.', 'nvarchar(100)') ansid , ROW_NUMBER () OVER (ORDER BY (SELECT NULL)) Seq
FROM @xml.nodes ('ansid') t(x)
), ques as
(
SELECT t.x.value ('.', 'nvarchar(100)') quesid , ROW_NUMBER () OVER (ORDER BY (SELECT NULL)) Seq
FROM @xml.nodes ('quesid') t(x)
)
SELECT ques.quesid, ans.ansid
FROM ans
JOIN ques
ON ques.Seq = ANS.Seq
quesid ansid
1 0
2 1
3 1