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

XML dưới dạng tham số trong thủ tục được lưu trữ (máy chủ sql)

Truy vấn đầu tiên của bạn mà bạn khẳng định có tác dụng trên thực tế không hoạt động với XML mà bạn đã cung cấp. Nó sẽ như thế này.

declare @handle int
declare @XML xml = '<ROOT><ids><id>2013-01-01</id></ids><ids><id>2013-01-02</id></ids></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/ids', 2) with (id Date)
exec sp_xml_removedocument @handle

Phiên bản thứ hai phải là

declare @handle int
declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'
exec sp_xml_preparedocument @handle out, @XML
select * from openxml(@handle, '/ROOT/id', 2) with (id Date '.')
exec sp_xml_removedocument @handle

Vì bạn đang sử dụng SQL Server 2008 trở lên, bạn có thể sử dụng kiểu dữ liệu XML để thay thế.

declare @XML xml = '<ROOT><id>2013-01-01</id><id>2013-01-02</id></ROOT>'

select T.N.value('text()[1]', 'date') as id
from @XML.nodes('ROOT/id') as T(N)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về SIN () trong SQL Server

  2. Chuyển đổi ‘datetimeoffset’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)

  3. Phương pháp nhanh nhất để chèn, cập nhật, lựa chọn SQL Server

  4. SQL Nhận lần xuất hiện cuối cùng của trường đối với mỗi hàng

  5. Chặn, Chặn, Chặn trên cửa DBA với Chặn máy chủ SQL