Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chèn nhiều hàng với các tham số Sql Server

Bạn có thể sử dụng thông số có giá trị trong bảng: Cách chuyển các tham số giá trị bảng sang thủ tục được lưu trữ từ mã .net

Đầu tiên, hãy tạo kiểu trong SQL Server:

CREATE TYPE [dbo].[myTvpType] AS TABLE 
(
    [RecordID] int,
    [TagID] int
)

Và mã C # để chèn dữ liệu của bạn:

internal void InsertData(SqlConnection connection, Dictionary<int, int> valuesToInsert)
{
    using (DataTable myTvpTable = CreateDataTable(valuesToInsert))
    using (SqlCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = "INSERT INTO myTable SELECT RecordID, TagID FROM @myValues";
        cmd.CommandType = CommandType.Text;

        SqlParameter parameter = cmd.Parameters.AddWithValue("@myValues", myTvpTable);
        parameter.SqlDbType = SqlDbType.Structured;

        cmd.ExecuteNonQuery();
    }
}

private DataTable CreateDataTable(Dictionary<int, int> valuesToInsert)
{
    // Initialize the DataTable
    DataTable myTvpTable = new DataTable();
    myTvpTable.Columns.Add("RecordID", typeof(int));
    myTvpTable.Columns.Add("TagID", typeof(int));

    // Populate DataTable with data
    foreach(key in valuesToInsert.Key)
    {
        DataRow row = myTvpTable.NewRow();
        row["RecordID"] = valuesToInsert[key];
        row["TagID"] = key;
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Tôi có cần sử dụng câu lệnh GO giữa các lô không?

  2. Cách sử dụng hàm IDENTITY () trong SQL Server

  3. Cách lấy Ngày thứ Bảy (Hoặc bất kỳ Ngày nào khác trong tuần) - SQL Server

  4. Giải pháp CHÈN HOẶC CẬP NHẬT trên SQL Server

  5. Tại sao kiểu DATETIME của SQL Server tiết kiệm thời gian trong tích tắc 1/300 giây?