sql >> Database >  >> RDS >> Sqlserver

SQL-proces XML-prestaties:invoegen in kolommen in een tabel

De eerste die ik zou proberen is het specificeren van de text() knooppunt bij gebruik van het XML-gegevenstype om te voorkomen dat SQL Server diep naar tekstelementen zoekt.

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)

Als dat niet goed genoeg is, zou ik in plaats daarvan OPENXML proberen.

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. Waarom QMYSQL-stuurprogramma niet geladen in QT5.2?

  2. hoe lees ik een lokaal bestand in SQL Developer?

  3. Het toevoegen van een niet-nulbare kolom aan een bestaande tabel mislukt. Wordt het waardekenmerk genegeerd?

  4. MySQL - Krijg rijnummer bij selecteren