Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kinerja XML proses SQL:Sisipkan ke dalam kolom dalam tabel

Yang pertama saya coba adalah menentukan text() node saat menggunakan tipe data XML untuk mencegah SQL Server melakukan pencarian mendalam untuk elemen teks.

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)

Jika itu tidak cukup baik, saya akan mencoba OPENXML sebagai gantinya.

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. Terjadi masalah saat memuat data Pembaca Data SQL ke DataTable

  2. Menghapus Baris Duplikat yang Tidak Valid di SQL

  3. Bagaimana cara memutar atribut kolom XML di T-SQL?

  4. Cara mendapatkan Tabel Induk, Tabel Referensi, Nama dan Kolom Batasan Kunci Asing di SQL Server - Tutorial SQL Server / TSQL Part 71

  5. Bagaimana saya bisa melakukan pernyataan UPDATE dengan JOIN di SQL Server?