首页 > 解决方案 > 这是向 SQL Server 表添加多行的最快方法吗

问题描述

我有一个一般性问题,我没有找到任何答案。我认为问这个问题很重要,这样我就知道如何构建整个应用程序,所以我从一开始就走在正确的轨道上。

我相信在一个查询命令中添加多行是实用/有效的。下面的代码一次在 5 列中添加 3 行和 5 个值。

另请参阅此表的图像:

数据表的图像

我现在的问题是。该表稍后将有 100,000 列,我正在考虑例如一次添加 10 行。现在想象这cmdString将是非常长的。

我的问题很简单。当我在一个查询中添加这么多信息时,这可以吗?或者这是错误的方式?(这是最快的方法还是我应该以其他方式执行以下代码?)

谢谢!

void addMultipleRowWithValuesSQL()
{
    String cmdString = "INSERT INTO DateTimes(DateTime,F1,F2,G1,G2) " + 
                       "VALUES" +
                           "('201005011715','1',2,'3','4')," +
                           "('201005011730','5',6,'7','8')," +
                           "('201005011745','9',10,'11','12');";
 
    using (SqlConnection conn = new SqlConnection(GetConnectionString()))
    {
        using (SqlCommand comm = new SqlCommand(cmdString))
        {
            try
            {
                comm.Connection = conn;

                conn.Open();
                int i = comm.ExecuteNonQuery();

                if (i != 0) 
                {
                    MessageBox.Show(i + "Rows Added"); 
                }
            }
            catch (SqlException ex) 
            {
                 MessageBox.Show(ex.ToString()); 
            }
        }
    }
}

static private string GetConnectionString()
{
    return "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\andre\\source\\repos\\TestDatabaseCreation\\DatabaseTest.mdf;Integrated Security=True;Connect Timeout=30";
}

标签: c#sql-serverdatatablesqlcommand

解决方案


他们称之为Bulk Insert,这里的这个链接将为您提供一个可以解释的好例子。 从 C# 批量插入 SQL Server


推荐阅读