Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вмъкнете няколко реда с параметри Sql Server

Можете да използвате параметри с таблични стойности:Как да предам параметри на стойността на таблицата към съхранена процедура от .net код

Първо създайте типа в SQL Server :

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

И C# кода за вмъкване на вашите данни:

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. За клуб редове за делничните дни

  2. Кой е най-добрият начин за пагиниране на резултатите в SQL Server

  3. Как да коригирате „Опцията за конфигурация „Agent XPs“ не съществува“ в SQL Server (T-SQL)

  4. Изберете най-горните редове, докато стойността в определена колона се появи два пъти

  5. Как да форматирам число със запетаи в T-SQL?