Můžete využít toho, že SQL Server 2008 nyní podporuje typy tabulek. Můžete definovat typ tabulky a na straně .net vytvořit DataTable
a předejte to jako parametr vaší uložené proceduře. Na straně SP je tento parametr typu [bez ohledu na tabletype, které jste udělali] Zde je příklad.
TotalPositions = [Some List] //of CSV List
DataTable Positions = new DataTable(); //Create the Datatype
Positions.Columns.Add("PositionID", typeof(int)); //
foreach (string sPos in TotalPositions.Split(','))
Positions.Rows.Add(int.Parse(sPos));
Poté můžete připojit pozice jako parametr pro vaši uloženou proceduru
SqlParameter Param = new SqlParameter();
Param.Value = Positions
Param.SqlDbType = SqlDbType.Structured;
Param.ParameterName = @Positions
command.Parameters.Add(Param);
Ve vaší databázi musíte definovat typ tabulky jako
CREATE TYPE [dbo].[Positions] AS TABLE(
[Position] int NULL,
)
GO
a do uložené procedury přidejte
@MyPositions Positions Readonly
Nyní můžete zacházet s @MyPositions
jako tabulku ve vašem postupu a porovnejte s ní.