将XML文档插入SQL表

时间:2018-11-30 00:05:07

标签: sql sql-server xml

我正在尝试创建一个具有两列的表,并将一个XML文档的数据插入该表中。我目前无法运行代码,因此我不确定可能导致问题的原因。任何帮助将不胜感激。谢谢。

CREATE TABLE TestProc(
TestProcID INT IDENTITY PRIMARY KEY,
Procedures XML,
);

DECLARE @TestProcXML xml;
SET @TestProcXML =
'
<TestProc>
<Proc>
<Description>the first procedure.</Description>
<SubProc>the first inner-proc.</SubProc>
<SubProc>the second inner-proc.</SubProc>
</Proc>
<Proc>
<Description>the second procedure.</Description>
</Proc>
<Proc>
<Description>the third procedure.</Description>
</Proc>
</TestProc>
'
INSERT INTO TestProc(Procedures);

2 个答案:

答案 0 :(得分:2)

尽管在此问题上尚不完全清楚,但是所提供的代码中有几个元素可能会导致失败。

我在下面提供了更正的版本。 (注意:这已经过测试,可以在MS SQL Server 2012中使用)

CREATE TABLE TestProc
(
    TestProcID INT IDENTITY(1,1) PRIMARY KEY,
    Procedures XML,
);

DECLARE @TestProcXML xml;
SET @TestProcXML = '
    <TestProc>
        <Proc>
            <Description>the first procedure.</Description>
            <SubProc>the first inner-proc.</SubProc>
            <SubProc>the second inner-proc.</SubProc>
        </Proc>
        <Proc>
            <Description>the second procedure.</Description>
        </Proc>
        <Proc>
            <Description>the third procedure.</Description>
        </Proc>
    </TestProc>
    '

INSERT INTO TestProc(Procedures)
VALUES (@TestProcXML)

包括的特定修补程序是:

  • IDENTITY-> IDENTITY(1,1)
  • 添加了VALUES部分以进行插入,因此表中实际插入了数据

答案 1 :(得分:0)

将值插入表中时,您可以简单地选择值,如下所示。  这是根据情况插入的最简单方法。

 CREATE TABLE TestProc(
    TestProcID INT IDENTITY(1,1) PRIMARY KEY,
    Procedures XML,
    );

    DECLARE @TestProcXML xml;
     SELECT @TestProcXML =
    '
    <TestProc>
    <Proc>
    <Description>the first procedure.</Description>
    <SubProc>the first inner-proc.</SubProc>
    <SubProc>the second inner-proc.</SubProc>
    </Proc>
    <Proc>
    <Description>the second procedure.</Description>
    </Proc>
    <Proc>
    <Description>the third procedure.</Description>
    </Proc>
    </TestProc>
    '


    INSERT INTO dbo.TestProc
            (Procedures)
    SELECT @TestProcXML