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

  • 相关阅读:
    *VC编程规范
    C++的va_start() va_end()函数应用(转)
    * C++类的分解,抽象类与纯虚函数的需要性
    *C++中的回调
    *C++中使用接口
    C++模版使用
    *获取mac地址的方法
    *数字——字符之间的转换(转)
    eclipse雕虫小技一:eclipse打开文件目录
    Hibernate升级后注解方式的对象关系映射
  • 原文地址:https://www.cnblogs.com/Koy/p/5615365.html
Copyright © 2011-2022 走看看