Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да модифицирате множество възли с помощта на SQL XQuery в MS SQL 2005

„Простият“ подход би бил да прехвърлите XML колоната към VARCHAR(MAX) и просто да направите REPLACE върху нея:

UPDATE
  YourTable
SET
  ParameterValue = CAST(REPLACE(CAST(ParameterValue AS VARCHAR(MAX)), '
                                Billy', 'Peter') AS XML)
WHERE
  ....

Почти изглежда, че не можете да направите актуализация на множество стойности на XML възел в един оператор UPDATE, както обяснява Richard Szalay тук :

За съжаление, изглежда, че внедряването е ужасно ограничено, тъй като не може да направи произволен брой модификации на една и съща стойност в една актуализация.

Така че предполагам, че или ще трябва да използвате „тъпия“ VARCHAR(MAX) подход, споменат по-горе, или да извършите актуализацията в цикъл (ДОКАТО все още намирате възел с „били“, АКТУАЛИЗИРАЙТЕ този възел, за да четете „Питър“ вместо това ).

Марк



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на SQL Server за промяна на типа на данните за промяна на таблица, промяна на колона

  2. Как да върна няколко стойности в една колона (T-SQL)?

  3. Sql сървърът не актуализира записи

  4. експортиране в Excel от списък с EPPLUS

  5. Не може да се вмъкне null в datetime в sql сървър