Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara memodifikasi beberapa node menggunakan SQL XQuery di MS SQL 2005

Pendekatan "sederhana" adalah dengan melemparkan kolom XML ke VARCHAR(MAX) dan cukup lakukan REPLACE di atasnya:

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

Sepertinya Anda hampir tidak dapat melakukan pembaruan beberapa nilai simpul XML dalam satu pernyataan UPDATE, seperti yang dijelaskan Richard Szalay di sini :

Sayangnya, tampaknya implementasinya sangat terbatas karena tidak dapat membuat sejumlah modifikasi sewenang-wenang pada nilai yang sama dalam satu pembaruan.

Jadi saya kira Anda harus menggunakan pendekatan VARCHAR(MAX) "bodoh" yang disebutkan di atas, atau melakukan pembaruan dalam satu lingkaran (SEMENTARA Anda masih menemukan simpul dengan "billy", PERBARUI simpul itu untuk membaca "Peter" sebagai gantinya ).

Marc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan dua tabel dengan SQL

  2. Kembalikan Nama Workstation Saat Ini yang Terhubung ke SQL Server (T-SQL)

  3. Apakah kueri REPLACE INTO praktik yang baik?

  4. Bagaimana cara membuang semua gambar kami dari bidang VARBINARY (MAX) di SQL Server 2008 ke sistem file?

  5. Baris yang dipisahkan koma SQL dengan klausa Group By