/* -- 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

動態修改 XML 欄位的更多相关文章

  1. Winform後台如何動態修改App.config文件里的內容

    以下方法修改的,自己添加的app.config裡面不會顯示出修改的東西. 方法一:通過使用System.Xml.XmlDocument對象的方法進行bin\debug\~.vshost.exe.Con ...

  2. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用 (转帖)

    說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程式,或是 桌面Applet,這 ...

  3. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (2):JavaFX建立及程式碼說明 (转帖)

    說明:就如同標題一樣,前端會用到JavaFX.Swing.Java Web Start.Google Map 的技術, 後端就是JDBC.Servlet的技術,以及我們會簽署認證jar檔案,這樣才可存 ...

  4. JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)

    JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...

  5. SQL Server 2016 的「動態資料遮罩 (Dynamic Data Masking)」

    一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Proce ...

  6. [SHELL] 修改xml的内容

    解析和修改xml用python比较方便,但如果不方便使用python,可以用sed命令简单替换 例如,欲替换下面一行中的端口号的值: <param name="ftpPort" ...

  7. [Xamarin] 動態載入Fragment (转帖)

    這篇我們來動態加入,一樣務求好懂簡單 1.一樣先將專案調整成3.0以上版本 2.首先建立自定Control的Layout \Resources\Layout\MyControlLayout1.axml ...

  8. [C#]動態叫用Web Service

    http://www.dotblogs.com.tw/jimmyyu/archive/2009/04/22/8139.aspx 摘要 Web Service對大家來說想必都不陌生,也大都了解Web S ...

  9. 篇章三:[AngularJS] 使用AngularCSS動態載入CSS

    前言 使用AngularAMD動態載入Controller 使用AngularAMD動態載入Service 上列兩篇文章裡,介紹了如何如何使用AngularAMD來動態載入Controller與Ser ...

随机推荐

  1. 使用JS 加入收藏,设为首页.

    <script type="text/javascript" language="javascript"> function AddFavorite ...

  2. scrollWidth,clientWidth,offsetWidth的区别 ---转载的

    转载自博客:http://www.cnblogs.com/kongxianghai/p/4192032.html 通过一个demo测试这三个属性的差别. 说明: scrollWidth:对象的实际内容 ...

  3. php通过COM类调用组件的实现代码

    在PHP 4.2.0 至 4.2.3中,可以使用w32api_register_function 函数调用外部的DLL,前提是需要在php.ini中打开扩展的php_w32api.dll. 如果使用的 ...

  4. css踩过的坑

    1. 英文内容会撑破容器而中文内容是可以自动换行的 原因: 因为数学规则因素,中文韩文朝鲜文等可以在任何字之后断行的,而英文却不能把一个单词拆开换行,只能撑破容器 解决: 用word-break: b ...

  5. SQOOP 添加oracle 驱动

      我的ORACLE 是11G  ,找到ojdbc6.jar,放到sqoop 的lib 下面,我的是cloudera 集群,目录是 /opt/cloudera/parcels/CDH-5.10.0-1 ...

  6. Python之单元测试框架unittest

    创建class继承unittest,每一个测试用例是以test开头的函数,先执行setup,然后用例按照字母的顺序执行,然后执行teardown import unittest class demo( ...

  7. springcloud(四) ribbon和feign

    Ribbon使用 order-service工程: application.yml: server: port: 9010 #order 服务都是用90 开头的端口 spring: applicati ...

  8. zookeeper分布式锁和服务优化配置

    转自:https://www.jianshu.com/p/02eeaee4357f?utm_campaign=maleskine&utm_content=note&utm_medium ...

  9. css常用属性总结:文本属性中的text-align

    前面提到text-indent属性,用来实现文本的缩进,今天的text-align使用率可比文本缩进高的多.拿自己现在做的项目上来说,水平居中和垂直居中估计是用到最多了,那我们就先看看它的语法吧! t ...

  10. centos7 配置dns服务器

    yum install bind ----------------------------------------------------------------------------------- ...