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

Sử dụng xml.modify để chèn các tham số vào phần tử cụ thể của cột xml

declare @XML xml = '
<Profile>
  <ID>20</ID>
  <User>
    <ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>
    <Name>somename</Name>
    <Activities>
      <Activity>
         <Name>activity1</Name>
      </Activity>
    </Activities>
  </User>
</Profile>'

declare @user_id nvarchar(50) = '20'
declare @activity_name nvarchar(50) = 'activity1'
declare @display_name nvarchar(50) = 'displayname1'

set @xml.modify('insert <DisplayName>{sql:variable("@display_name")}</DisplayName>
                 into (/Profile[ID = sql:variable("@user_id")]
                       /User/Activities/
                       Activity[Name = sql:variable("@activity_name")])[1]')

Kết quả:

<Profile>
  <ID>20</ID>
  <User>
    <ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>
    <Name>somename</Name>
    <Activities>
      <Activity>
        <Name>activity1</Name>
        <DisplayName>displayname1</DisplayName>
      </Activity>
    </Activities>
  </User>
</Profile>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải quyết quá tải không thành công vì không thể gọi 'mới' có thể truy cập được nếu không có chuyển đổi thu hẹp

  2. Chèn các ký tự vào giữa chuỗi trong SQL Server (T-SQL)

  3. Cách tạo dữ liệu kiểm tra trong SQL Server

  4. Lỗi:Nhà cung cấp TCP:Mã lỗi 0x2746. Trong quá trình thiết lập Sql trong linux thông qua thiết bị đầu cuối

  5. Thay đổi kiểu dữ liệu varchar thành nvarchar trong cơ sở dữ liệu SQL Server 2005 hiện có. Có vấn đề gì không?