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

Hiệu suất XML của quy trình SQL:Chèn vào các cột trong bảng

Đầu tiên tôi sẽ thử là chỉ định text() khi sử dụng kiểu dữ liệu XML để ngăn Máy chủ SQL thực hiện tìm kiếm sâu các phần tử văn bản.

INSERT INTO SUPPLIER
   (IDCONO
   ,IDSUNO
   ,IDSUTY)
SELECT
   T.C.value('(IDCONO/text())[1]', 'VARCHAR(50)') as IDCONO,
   T.C.value('(IDSUNO/text())[1]', 'VARCHAR(50)') as IDSUNO,
   T.C.value('(IDSUTY/text())[1]', 'VARCHAR(50)') as IDSUTY
FROM @data.nodes('/Suppliers/Supplier') T(C)

Nếu điều đó không đủ tốt, tôi sẽ thử OPENXML thay thế.

DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUT, @data

INSERT INTO SUPPLIER
   (IDCONO
   ,IDSUNO
   ,IDSUTY)
SELECT IDCONO, IDSUNO, IDSUTY
FROM OPENXML(@idoc, '/Suppliers/Supplier', 2) WITH
        (IDCONO VARCHAR(50),
         IDSUNO VARCHAR(50),
         IDSUTY VARCHAR(50))


EXEC sp_xml_removedocument @idoc



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernate (/ JPA) phân trang phía máy chủ và MS SQL Server

  2. Ràng buộc duy nhất trong một nhóm bản ghi trong đó một số giá trị giống nhau

  3. Máy chủ Sql - xóa đệ quy

  4. So khớp mờ sử dụng T-SQL

  5. chèn các mục của hộp danh sách vào cơ sở dữ liệu máy chủ sql