Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wstawić dane xml do tabeli w serwerze sql 2005?

Zakładając przykład XML jak powyżej:

<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Emp>
        <ID>3</ID>
        <EmpName>Dibyendu</EmpName>
        <Sal>3500</Sal>
    </Emp>
</Record>

Zakładając poniższą tabelę:

CREATE TABLE Employee
(
    [ID] [int] NOT NULL,  
    [EmpName] varchar(max) NOT NULL,   
    [Sal] [int] NULL
)

Poniższa procedura składowana, która używa xpaths, powinna załatwić sprawę

CREATE PROCEDURE AddEmployee
    @empXml xml
AS

INSERT INTO Employee
(
    ID,
    EmpName,
    Sal
)
VALUES
(
    @empXml.value('(/Record/Emp/ID)[1]', 'int'),
    @empXml.value('(/Record/Emp/EmpName)[1]', 'varchar(max)'),
    @empXml.value('(/Record/Emp/Sal)[1]', 'int')
)

Które następnie możesz wykonać za pomocą:

exec AddEmployee '<Record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Emp><ID>3</ID><EmpName>Dibyendu</EmpName><Sal>3500</Sal></Emp></Record>' 

Będziesz musiał przeprowadzić małą refaktoryzację, jeśli plik XML rekordu może potencjalnie zawierać wiele elementów „Emp”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Analiza MS SQL Server dla tych, którzy widzą go po raz pierwszy

  2. Dynamiczny WYBIERZ TOP @var w SQL Server

  3. Wybór procesora dla SQL Server 2014 – część 2

  4. Jak ustawić domyślną wartość dla istniejącej kolumny?

  5. Błąd SQL:nie można użyć wyszukiwania pełnotekstowego w wystąpieniu użytkownika.