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

Cách lặp và phân tích cú pháp tham số xml trong thủ tục được lưu trữ trên máy chủ sql

Hãy thử câu lệnh này:

SELECT
   Pers.value('(ID)[1]', 'int') as 'ID',
   Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
   Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
FROM
   @YourXml.nodes('/Employees/Person') as EMP(Pers)

Điều này cung cấp cho bạn một biểu diễn hàng / cột đẹp của dữ liệu đó.

Và tất nhiên, bạn có thể mở rộng điều đó thành phần thứ hai trong câu lệnh INSERT:

INSERT INTO dbo.YourTargetTable(ID, Name, LastName)
  SELECT
     Pers.value('(ID)[1]', 'int') as 'ID',
      Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
     Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
  FROM
     @YourXml.nodes('/Employees/Person') as EMP(Pers)

Xong - không cần vòng lặp hoặc con trỏ hoặc bất kỳ thứ khủng khiếp nào như vậy! :-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo tập lệnh chèn cho các bản ghi đã chọn?

  2. Cách truy vấn Bảng SQL và loại bỏ các hàng trùng lặp khỏi tập kết quả

  3. Truy vấn SQL để chia dữ liệu cột thành các hàng

  4. SUBSTRING () và giá trị hex

  5. cách tìm phiên bản và phiên bản của phiên bản máy chủ sql thông qua sổ đăng ký