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

C# Вмъкване в SQL таблица със списък като параметър

Настройте дефиниран от потребителя тип, подобен на.

CREATE TYPE [dbo].[tableOf_Ints] AS TABLE(
    [ID] [int] NULL
)
GO

След това можете да го използвате по този начин.

public static SqlCommand CreateCommand(List<int> ints)
{
    var dt = new DataTable();
    dt.Columns.Add("ID",typeof(Int32));
    for (int i = 0; i < ints.Count; i++)
    {
        dt.Rows.Add(ints[i]);
    }

    SqlCommand cmd = new SqlCommand("SomeStoredProc");
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandTimeout = 120;
    var param1 = cmd.Parameters.AddWithValue("@SomeParam", dt);
    param1.SqlDbType = SqlDbType.Structured;
    param1.TypeName = "dbo.tableOf_Ints";

    return cmd;
}

Ако приемем, че имате съхранена процедура като тази.

CREATE PROCEDURE [dbo].[SomeStoredProc]  
    @SomeParam TableOf_Ints READONLY
AS
BEGIN
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. База данни + удостоверяване на Windows + потребителско име/парола?

  2. Как ефективно да изтривате редове, като НЕ използвате Truncate Table в таблица с 500 000+ реда

  3. Как мога да направя първичен ключ като AUTOINCREMENT

  4. Най-бързият начин за изброяване на всички бази данни в SQL Server с помощта на T-SQL

  5. SQL Server 2008 GET DATETIMEOFFSET според настройките на машината