簡體   English   中英

存儲過程以從XML插入多行

[英]Stored Procedure to insert multiple rows from XML

我正在嘗試編寫一個存儲過程,以便從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>

如果您的XML在<DocumentElement>內包含多個<Test>元素,則可以使用類似以下內容的方法:

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從@Input XML中獲取<Test> XML元素的列表,然后將每個片段的o_cuso_depot元素作為int o_depot (根據需要進行自適應),然后將它們插入表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM