Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sửa đổi nhiều nút bằng SQL XQuery trong MS SQL 2005

Cách tiếp cận "đơn giản" sẽ là truyền cột XML thành VARCHAR (MAX) và chỉ cần thực hiện THAY THẾ trên đó:

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

Có vẻ như bạn không thể cập nhật nhiều giá trị nút XML trong một câu lệnh CẬP NHẬT duy nhất, như Richard Szalay giải thích tại đây :

Thật không may, có vẻ như việc triển khai bị hạn chế đáng kể ở chỗ nó không thể thực hiện một số sửa đổi tùy ý cho cùng một giá trị trong một bản cập nhật.

Vì vậy, tôi đoán bạn sẽ phải sử dụng cách tiếp cận VARCHAR (MAX) "câm" được đề cập ở trên hoặc cập nhật trong một vòng lặp (TRONG KHI bạn vẫn tìm thấy một nút có "billy", hãy CẬP NHẬT nút đó để đọc "Peter" thay thế ).

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. Cách tạo tệp đầu ra csv từ quy trình được lưu trữ trong SQL Server

  2. Tạo cơ sở dữ liệu SQL Server 2012 tương thích cho năm 2008

  3. SQL - Kết nối với máy chủ được liên kết với phiên bản được đặt tên

  4. Cách hiển thị truy vấn và kết quả trong tab riêng biệt trong SQL Server Management Studio (SSMS) - Hướng dẫn sử dụng SQL Server / TSQL Phần 15

  5. số (38,0) làm cột khóa chính; tốt, xấu, ai quan tâm?