zoukankan      html  css  js  c++  java
  • ms sql server 大批量导入

    BULK INSERT

    文章:BULK INSERT如何将大量数据高效地导入SQL Server

    可以首先在数据库建一个表Temp_tb,这个表作为导入数据的表,然后使用bulk insert导入,导入完毕后,再在数据库中通过自己的控制将Temp_tb数据导入到目标表中。

    这种方法可以解决只导入部分字段的问题。

    示例:

    Bulk insert 数据库名.用户名.表名  
    from '数据文件路径'  
    with  
    (  
    formatfile = '格式文件路径',  
    FirstRow = 2    --指定数据文件中开始的行数,默认是1  
    )  

    示例2

    BULK INSERT db_mgr.dbo.T_Student  
    FROM 'C:/student.data'  
    WITH  
    (  
        FORMATFILE = 'C:/student_fmt.xml'  
    )  

    SqlBulkCopy 块copy

    using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))   
    { sqlBC.BatchSize = 100000;   
    sqlBC.BulkCopyTimeout = 60;   
    sqlBC.DestinationTableName = "dbo.TableB";   
    sqlBC.ColumnMappings.Add("valueA", "Value1");   
    sqlBC.WriteToServer(dt);   
    } 

    例子2

            public void SqlBulkCopyForDataTable(string tableName, DataTable dt, out string msg)
            {
                msg = "";
                try
                {
                    using (SqlConnection conn = (SqlConnection)idataHelper.CreateConnection)
                    {
                        conn.Open();
                        using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(conn))
                        {
                            try
                            {
                                sqlbulkcopy.DestinationTableName = tableName;
                                sqlbulkcopy.ColumnMappings.Add("Id", "Id列");
                                sqlbulkcopy.ColumnMappings.Add("Name", "名字");
                                sqlbulkcopy.WriteToServer(dt);
                            }
                            catch (System.Exception ex)
                            {
                                msg = ex.ToString();
                                throw ex;
                            }
                            finally
                            {
                                conn.Close();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {  
                }
            }
  • 相关阅读:
    Java—数据库技术
    Java—泛型
    Java—图形处理
    Java—网络技术
    vb.net 分割byte数组的方法SplitBytes
    动态支付宝转账码可指定金额备注无限秒生成的方法
    关于支付宝个人账户免签收款自动备注
    vb.net MakeWParam
    Vb.net MakeLong MAKELPARAM 合并整数代码
    百度图片objURL解密vb.net版
  • 原文地址:https://www.cnblogs.com/Tpf386/p/7883925.html
Copyright © 2011-2022 走看看