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
                {  
                }
            }
  • 相关阅读:
    TOJ 2776 CD Making
    int型、long型和long long型
    Hadoop HA- hadoop集群部署
    大数据之路- Hadoop环境搭建(Linux)
    Hadoop HA- zookeeper安装配置
    Zookeeper- Error contacting service. It is probably not running解决方案和原理
    大数据- 自定义Log4j日记
    Hadoop- Hadoop环境搭建
    域名解析
    JAVA- JDBC之DBHelper
  • 原文地址:https://www.cnblogs.com/Tpf386/p/7883925.html
Copyright © 2011-2022 走看看