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

Изтриване на множество възли в един XQuery за SQL Server

Докато изтриването е малко неудобно да се направи по този начин, можете вместо това да направите актуализация, за да промените данните, при условие че вашите данни са прости (като примера, който дадохте). Следната заявка основно ще раздели двата XML низа в таблици, ще ги обедини, ще изключи ненулевите (съвпадащи) стойности и ще ги преобразува обратно в XML:

UPDATE @table 
SET [column] = (
    SELECT p.i.value('.','int') AS c
    FROM [column].nodes('//i') AS p(i)
    OUTER APPLY (
        SELECT x.i.value('.','bigint') AS i
        FROM @parameter.nodes('//i') AS x(i)
        WHERE p.i.value('.','bigint') = x.i.value('.','int')
    ) a
    WHERE a.i IS NULL
    FOR XML PATH(''), TYPE
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върнете *всичко* от съхранена процедура с помощта на JDBC

  2. Използване на R с RODBCext и RODBC за изпълнение на SQL съхранена процедура

  3. Какво е застой на SQL Server?

  4. Използвайте SQL сертификат от друга база данни

  5. Как да импортирам файл на Excel в SQL Server?