我正在尝试编写一个存储过程,以便从C#应用程序向表中插入大约100万行。我的应用程序将行写出到XML文件,然后我希望应用程序以XML文件作为参数调用存储过程。我一直在寻找其他类似的问题,但我似乎无法让他们工作,他们似乎都没有解释他们的答案。我的XML只有2列,所以我认为它应该相当简单。我使用的是SQL Server 2005和ASP.NET 2.0。我的XML文件如下所示:
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<Test>
<o_cus>0</o_cus>
<o_depot>100001</o_depot>
</Test>
答案 0 :(得分:0)
如果您的XML在<Test>
中包含多个<DocumentElement>
元素,那么您可以使用以下内容:
CREATE PROCEDURE dbo.InsertData(@Input XML)
AS
BEGIN
INSERT INTO dbo.YourTable (O_cus, O_depot)
SELECT
XCol.value('(o_cus)[1]', 'int'),
XCol.value('(o_depot)[1]', 'int')
FROM
@input.nodes('/DocumentElement/Test') AS XTbl(XCol)
END
基本上,您使用XPath从<Test>
XML获取@Input
XML元素列表,然后您抓取每个片段的o_cus
和o_depot
元素为int
(根据需要进行调整),然后将其插入到表中。