zoukankan      html  css  js  c++  java
  • 動態修改 XML 欄位

    /* -- for test
    DECLARE @content VARCHAR(50)
    DECLARE @folioId VARCHAR(50)
    DECLARE @opinionType VARCHAR(50)
    SET @content = 'this is board'
    SET @folioId = '4BC3141E-BEF5-4528-8B0B-600B7987246D'
    SET @opinionType = 'opinion_board'
    */

    IF(EXISTS(SELECT opinion FROM folio WHERE folio_id = @folioId AND opinion IS null)) BEGIN
    UPDATE folio SET opinion = '<opinion></opinion>' WHERE folio_id = @folioId
    END

    DECLARE @val VARCHAR(50)
    SELECT @val = opinion.value('(/opinion/*[local-name()=sql:variable(''@opinionType'')])[1]', 'nvarchar(max)' ) FROM folio WHERE folio_id = @folioId
    if @val IS NOT NULL BEGIN
    IF @val = '' BEGIN
    UPDATE folio SET opinion.modify('insert text{sql:variable(''@content'')} into (/opinion/*[local-name()=sql:variable(''@opinionType'')])[1]')
    WHERE folio_id = @folioId
    END ELSE BEGIN
    UPDATE folio SET opinion.modify('replace value of (/opinion/*[local-name()=sql:variable(''@opinionType'')]/text())[1] with sql:variable(''@content'')')
    WHERE folio_id = @folioId
    END
    END
    ELSE BEGIN
    UPDATE folio SET opinion.modify('insert
    if(sql:variable(''@opinionType'') = ''opinion_edit'')
    then element opinion_edit { sql:variable(''@content'') }
    else if(sql:variable(''@opinionType'') = ''opinion_dept'')
    then element opinion_dept { sql:variable(''@content'') }
    else if(sql:variable(''@opinionType'') = ''opinion_board'')
    then element opinion_board {sql:variable(''@content'')}
    else ()
    into (/opinion)[1]')
    WHERE folio_id = @folioId
    END

  • 相关阅读:
    Redis分布式锁的实现原理
    Redis锁的简单应用
    Redis所需内存 超过可用内存怎么办
    redis学习笔记之虚拟内存
    组织安全性SQL
    应收发票相关脚本
    用户与职责与请求关系语句
    应收事物处理删除 SQL 语句
    总账库存科目明细追溯
    月结各模块关闭情况查询
  • 原文地址:https://www.cnblogs.com/Koy/p/5615365.html
Copyright © 2011-2022 走看看