我正在尝试创建一个具有两列的表,并将一个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);
答案 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