• <i id='9UJ47'><tr id='9UJ47'><dt id='9UJ47'><q id='9UJ47'><span id='9UJ47'><b id='9UJ47'><form id='9UJ47'><ins id='9UJ47'></ins><ul id='9UJ47'></ul><sub id='9UJ47'></sub></form><legend id='9UJ47'></legend><bdo id='9UJ47'><pre id='9UJ47'><center id='9UJ47'></center></pre></bdo></b><th id='9UJ47'></th></span></q></dt></tr></i><div id='9UJ47'><tfoot id='9UJ47'></tfoot><dl id='9UJ47'><fieldset id='9UJ47'></fieldset></dl></div>
    • <bdo id='9UJ47'></bdo><ul id='9UJ47'></ul>

    1. <small id='9UJ47'></small><noframes id='9UJ47'>

        <tfoot id='9UJ47'></tfoot><legend id='9UJ47'><style id='9UJ47'><dir id='9UJ47'><q id='9UJ47'></q></dir></style></legend>

        用xml到sql按条件更新所有节点

        时间:2023-06-07
        1. <legend id='0DP3y'><style id='0DP3y'><dir id='0DP3y'><q id='0DP3y'></q></dir></style></legend>
            <tbody id='0DP3y'></tbody>
            <bdo id='0DP3y'></bdo><ul id='0DP3y'></ul>

          • <i id='0DP3y'><tr id='0DP3y'><dt id='0DP3y'><q id='0DP3y'><span id='0DP3y'><b id='0DP3y'><form id='0DP3y'><ins id='0DP3y'></ins><ul id='0DP3y'></ul><sub id='0DP3y'></sub></form><legend id='0DP3y'></legend><bdo id='0DP3y'><pre id='0DP3y'><center id='0DP3y'></center></pre></bdo></b><th id='0DP3y'></th></span></q></dt></tr></i><div id='0DP3y'><tfoot id='0DP3y'></tfoot><dl id='0DP3y'><fieldset id='0DP3y'></fieldset></dl></div>

                <small id='0DP3y'></small><noframes id='0DP3y'>

                <tfoot id='0DP3y'></tfoot>

                  本文介绍了用xml到sql按条件更新所有节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我有一个存储的 SQL 过程,它已经声明了具有这种结构的 xml 变量

                  I have a stored SQL procedure, which has declared xml variable with this kind of structure

                  <a>
                    <b>4</b>
                    <b>18</b>
                    <b>2</b>
                  </a>
                  

                  我需要为这个 XML 数据做一些类似 UPDATE a SET b=b-1 WHERE b>@MyIntVariable 的事情.在 MS Transact SQL 中执行此操作的最佳方法是什么?

                  I need to do something like UPDATE a SET b=b-1 WHERE b>@MyIntVariable for this XML data. What is the best way to do it in MS Transact SQL?

                  推荐答案

                  modify 函数最适合处理 xml 数据.请参阅 http://msdn.microsoft.com/en-us/library/ms190675(v=sql.105).aspx.

                  The modify function would be the most appropriate for manipulating xml data. See http://msdn.microsoft.com/en-us/library/ms190675(v=sql.105).aspx.

                  DECLARE @NUM INT = 10
                  
                  DECLARE @xml XML = N'
                  <a>
                    <b>4</b>
                    <b>18</b>
                    <b>2</b>
                  </a>
                  ';
                  SELECT @XML;
                  
                  DECLARE @COUNT INT
                  SET @COUNT = @XML.value ('count(/a/b)', 'int');
                  
                  WHILE @COUNT > 0
                  BEGIN
                      SET @XML.modify('replace value of (/a/b[sql:variable("@COUNT")]/text())[1] with 
                      (
                      if ((/a/b[sql:variable("@COUNT")])[1] > sql:variable("@NUM")) then
                           (/a/b[sql:variable("@COUNT")])[1] - 1
                         else
                           (/a/b[sql:variable("@COUNT")])[1] cast as xs:double ?
                      )
                  ')
                      SET @COUNT = @COUNT - 1;
                  END
                  
                  SELECT @XML
                  

                  这篇关于用xml到sql按条件更新所有节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:从 Sql Server 中的 xml 中的最后一个获取第 n 个元素 下一篇:对于 XML 显式

                  相关文章

                  最新文章

                  • <bdo id='QDae1'></bdo><ul id='QDae1'></ul>
                  <i id='QDae1'><tr id='QDae1'><dt id='QDae1'><q id='QDae1'><span id='QDae1'><b id='QDae1'><form id='QDae1'><ins id='QDae1'></ins><ul id='QDae1'></ul><sub id='QDae1'></sub></form><legend id='QDae1'></legend><bdo id='QDae1'><pre id='QDae1'><center id='QDae1'></center></pre></bdo></b><th id='QDae1'></th></span></q></dt></tr></i><div id='QDae1'><tfoot id='QDae1'></tfoot><dl id='QDae1'><fieldset id='QDae1'></fieldset></dl></div>

                  1. <small id='QDae1'></small><noframes id='QDae1'>

                    <tfoot id='QDae1'></tfoot>

                    1. <legend id='QDae1'><style id='QDae1'><dir id='QDae1'><q id='QDae1'></q></dir></style></legend>