开发者

how to fetch data from XML and update database table

开发者 https://www.devze.com 2023-02-10 18:17 出处:网络
I am passing serialized collection(XML) to stored procedure. My XML structure is- <ArrayofDepartmentEntity>

I am passing serialized collection(XML) to stored procedure. My XML structure is-

<ArrayofDepartmentEntity>
  <Department>
    <id>1004</id>
    <budget>2500.oo</budget>
  </Department>
  <Department>
    <id>1080</id>
    <budget>3500.oo</budget>
  </Department>
  <Department>
    <id>1029</id>
    <budget>4500.00</budget>
  </Department>
</ArrayofDepartmentEntity>

How can I UPDATE corresponding budget column where department IDs are in above XML?? can any body write down the sql syntax.

my SP syntax-

ALTER PROCEDURE [dbo].[usp_SaveDepartentBudget] (                  
@departmentBudgetXML ntext = NULL                  
)                          
AS                        
B开发者_开发问答EGIN 
DECLARE @ptrHandle int     
EXEC sp_xml_preparedocument @ptrHandle OUTPUT, @departmentBudgetXML
....Here I want to update Budget foreach departmentID in @departmentBudgetXML


Try this code.

DECLARE @XMLString XML
SET @XMLString = '<ArrayofDepartmentEntity>
  <Department>
    <id>1004</id>
    <budget>2500.oo</budget>
  </Department>
  <Department>
    <id>1080</id>
    <budget>3500.oo</budget>
  </Department>
  <Department>
    <id>1029</id>
    <budget>4500.00</budget>
  </Department>
</ArrayofDepartmentEntity>'
SELECT
Department.col.value('id[1]','VARCHAR(20)')AS Id,
Department.col.value('budget[1]','VARCHAR(20)')AS Budget
FROM @XMLString.nodes('//Department') Department(col)

EDIT : Here is the code to Update

UPDATE tblInfo SET Budget = Department.col.value('budget[1]','MONEY')
FROM @XMLString.nodes('//Department') Department(col)
WHERE tblInfo.Id = Department.col.value('id[1]','INT')
0

精彩评论

暂无评论...
验证码 换一张
取 消