1

我正在尝试编写一个存储过程,将大约 100 万行从 C# 应用程序插入到表中。我的应用程序将行写入 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>
4

1 回答 1

1

如果您的 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 中获取 XML 元素的列表@Input,然后您将每个片段o_cuso_depot元素作为int(根据需要进行调整)并将它们插入到您的表中。

于 2013-11-10T22:19:24.743 回答