关于XML 类型字段的修改

/****** Object:  StoredProcedure [dbo].[Ywcd_UpdateOrderFormState]    Script Date: 07/28/2011 15:38:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[Ywcd_UpdateOrderFormState]
	-- Add the parameters for the stored procedure here
	@OrderFormId int,--订单Id
	@SupplyOid int,--原文提供机构Id
	@OrderFormState nvarchar(60)--更新的订单状态
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @stateId int;
	declare @xml xml;
	select @xml=DealRule from Ywcd_OrderFormLog where Id=@OrderFormId
	set @xml.modify('replace value of (/Root/OrderFormState/text())[1] with sql:variable("@OrderFormState")') 	
	select @stateId=Id from Ywcd_OrderFormStateDic where  Name=@OrderFormState
    -- Insert statements for procedure here
	update Ywcd_OrderFormLog set OrderFormStateId=@stateId,SupplyOid=@SupplyOid,
	DealTime=GETDATE(), DealRule=@xml
	 where Id=@OrderFormId
	select DealRule from Ywcd_OrderFormLog where Id=@OrderFormId
END

总结:modify方法,更新xml内容用replace

(/Root/OrderFormState/text())[1] 为修改节点内容,而非修改属性值

sql:variable("@OrderFormState") 调用sql变量



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值