sql >> Databáze >  >> RDS >> Sqlserver

Proces SQL Výkon XML:Vkládání do sloupců v tabulce

První, co bych zkusil, je zadat text() uzel při použití datového typu XML, aby se zabránilo SQL Serveru v hlubokém vyhledávání textových prvků.

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)

Pokud to není dost dobré, zkusil bych místo toho OPENXML.

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. Vyloučit překrývající se období ve funkci časové agregace

  2. MySQL:nelze získat přístup k účtu root

  3. MariaDB JSON_LOOSE() Vysvětleno

  4. kombinování polí Datum a Čas s DateTime, SQL Server 2008