zoukankan      html  css  js  c++  java
  • 用xml作参数一次插入多条数据

    1.存储过程方法:

    declare @customers xml
    set @customers='<cus bpNo=''15'' MNo=''商户ID1'' MName=''商户名称1'' /><cus bpNo=''15'' MNo=''商户ID2'' MName=''商户名称2'' />'

    INSERT control.tb_ExternalEnterprise(BPNo,EnterpriseId,EnterpriseName)
    SELECT R.c.value('@bpNo','CHAR(6)'),R.c.value('@MNo','VARCHAR(50)'),
           R.c.value('@MName','NVARCHAR(30)')
     FROM @customers.nodes('cus') R(c)

    2.sql语句方法:

    INSERT tb_ExternalEnterprise(BPNo,EnterpriseId,EnterpriseName)
    SELECT b.*
     FROM (select cast('<cus bpNo=''15'' MNo=''商户ID1'' MName=''商户名称1''/>
         <cus bpNo=''15'' MNo=''商户ID2'' MName=''商户名称2'' />' as xml) a)t
    cross apply(select R.c.value('@bpNo','CHAR(6)') as bpNo,
                       R.c.value('@MNo','VARCHAR(50)') as MNo,
                       R.c.value('@MName','NVARCHAR(30)') as MName
                from t.a.nodes('cus') R(c)) b

    System.Text.StringBuilder sb = new System.Text.StringBuilder("'");
                for (int i = 0; i < count; i++)
                {
                    sb.AppendFormat("<cus bpNo='{0}' />", i.ToString());//Guid.NewGuid().ToString());
                }
                sb.Append("'");

    ************************* SqlBulkCopy ********************************

    private static long SqlBulkCopyInsert()
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();

                DataTable dataTable = GetTableSchema();
                string passportKey;
                for (int i = 0; i < count; i++)
                {
                    passportKey = i.ToString();//Guid.NewGuid().ToString();
                    DataRow dataRow = dataTable.NewRow();
                    dataRow[0] = passportKey;
                    dataTable.Rows.Add(dataRow);
                }

                SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString);
                sqlBulkCopy.DestinationTableName = "Passport";
                sqlBulkCopy.BatchSize = dataTable.Rows.Count;
                SqlConnection sqlConnection = new SqlConnection(connectionString);
                sqlConnection.Open();
                if (dataTable != null && dataTable.Rows.Count != 0)
                {
                    sqlBulkCopy.WriteToServer(dataTable);
                }
                sqlBulkCopy.Close();
                sqlConnection.Close();

                stopwatch.Stop();
                return stopwatch.ElapsedMilliseconds;
            }

  • 相关阅读:
    第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置
    THINKPHP5近期暴露的漏洞
    同事孩子满月酒送诗十二首
    东莞电台送诗
    前两天解决了一个贴吧里面牛年找牛的问题
    群友作诗大会
    老系统维护有感
    家和万事兴 歌词
    傻大个的保健人生遭遇
    东莞电台忽来关心,寥寥数语,余有感言
  • 原文地址:https://www.cnblogs.com/zhuawang/p/2085259.html
Copyright © 2011-2022 走看看