sql >> Database >  >> RDS >> Sqlserver

Voeg meerdere rijen in met parameters Sql Server

U kunt een tabel met parameters gebruiken:Hoe tabelwaardeparameters doorgeven aan opgeslagen procedure vanuit .net-code

Maak eerst het type in SQL Server:

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

En de C#-code om uw gegevens in te voegen:

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. Doorzoek alle velden in alle tabellen voor een specifieke waarde (Oracle)

  2. Geef het begin van de maand terug in SQLite

  3. Database voor zoeken in volledige tekst en 200 miljoen records

  4. Het SQL Server-transactielogboek, deel 2:logboekarchitectuur