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

Вмъкване на List<> в таблицата на SQL Server

Предполагам, че казвате SQL (структуриран език за заявки) и наистина имате предвид Microsoft SQL Server (действителният продукт на базата данни) вместо това - нали?

Не можете да вмъкнете цял списък като цяло в SQL Server - трябва да вмъкнете един ред за всеки запис. Това означава, че трябва да извикате оператора INSERT няколко пъти.

Направете го така:

// define the INSERT statement using **PARAMETERS**
string insertStmt = "INSERT INTO dbo.REPORT_MARJORIE_ROLE(REPORT_ID, ROLE_ID, CREATED_BY, CREATED) " + 
                    "VALUES(@ReportID, @RoleID, 'SYSTEM', CURRENT_TIMESTAMP)";

// set up connection and command objects in ADO.NET
using(SqlConnection conn = new SqlConnection(-your-connection-string-here))
using(SqlCommand cmd = new SqlCommand(insertStmt, conn)
{
    // define parameters - ReportID is the same for each execution, so set value here
    cmd.Parameters.Add("@ReportID", SqlDbType.Int).Value = YourReportID;
    cmd.Parameters.Add("@RoleID", SqlDbType.Int);

    conn.Open();

    // iterate over all RoleID's and execute the INSERT statement for each of them
    foreach(int roleID in ListOfRoleIDs)
    {
      cmd.Parameters["@RoleID"].Value = roleID;
      cmd.ExecuteNonQuery();
    }

    conn.Close();
}      


  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 - Връщане на стойност след INSERT

  2. TSQL:Създайте изглед, който има достъп до множество бази данни

  3. Използвайки T-SQL, върнете n-ти разделен елемент от низ

  4. Как да върнете подниз от низ в SQL Server с помощта на функцията SUBSTRING().

  5. Измерване на ефективността на заявката:Разходи за заявка на план за изпълнение спрямо отнето време