sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-proces XML-ydeevne:Indsæt i kolonner i en tabel

Det første jeg ville prøve er at specificere text() node, når du bruger XML-datatypen for at forhindre SQL Server i at lave en dyb søgning efter tekstelementer.

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)

Hvis det ikke er godt nok, ville jeg prøve OPENXML i stedet for.

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. fuldtekstforespørgsel i joomla

  2. Hvordan parametreres databaseforbindelsesstrengen i en SSIS-pakke?

  3. Fejl:Inkompatible tegnkodninger:UTF-8 og ASCII-8BIT

  4. python MySQLdb vil ikke indsætte i db