首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将行批量插入sql server的最快方法

将行批量插入 SQL Server 的最快方法是使用 Table-Valued Parameters (TVP)。TVP 是一种用户自定义的表类型,可以在存储过程中使用,以将多行数据一次性传递到 SQL Server。

以下是使用 TVP 批量插入数据的步骤:

  1. 创建自定义表类型:
代码语言:sql
复制
CREATE TYPE dbo.MyTableType AS TABLE (
    Column1 INT,
    Column2 VARCHAR(50),
    Column3 DATETIME
)
  1. 创建存储过程,使用 TVP 作为参数:
代码语言:sql
复制
CREATE PROCEDURE dbo.BulkInsertData
    @MyTableVariable dbo.MyTableType READONLY
AS
BEGIN
    INSERT INTO MyTable (Column1, Column2, Column3)
    SELECT Column1, Column2, Column3 FROM @MyTableVariable
END
  1. 在应用程序中使用 TVP 调用存储过程:
代码语言:csharp
复制
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();

    DataTable dataTable = new DataTable();
    dataTable.Columns.Add("Column1", typeof(int));
    dataTable.Columns.Add("Column2", typeof(string));
    dataTable.Columns.Add("Column3", typeof(DateTime));

    // Add rows to the dataTable

    using (SqlCommand command = new SqlCommand("dbo.BulkInsertData", connection))
    {
        command.CommandType = CommandType.StoredProcedure;
        SqlParameter parameter = command.Parameters.AddWithValue("@MyTableVariable", dataTable);
        parameter.SqlDbType = SqlDbType.Structured;
        parameter.TypeName = "dbo.MyTableType";

        command.ExecuteNonQuery();
    }
}

这种方法可以显著提高插入多行数据的速度,特别是在处理大量数据时。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券