Вы открыты для изменения входа в процесс? Если это так, вы можете использовать пользовательский тип таблицы, определенный пользователем;
CREATE TYPE [dbo].[SomeInfo] AS TABLE(
[Id] [int] NOT NULL,
[SomeValue] [int] NOT NULL )
Определите свой сохраненный процесс как таковой;
CREATE PROCEDURE [dbo].[AddSomeStuff]
@theStuff [SomeInfo] READONLY
AS
BEGIN
INSERT INTO SOMETABLE ([...columns...])
SELECT [...columns...] from @theStuff
END
Если вам нужно вызвать его из .net, вам нужно создать таблицу данных (называемую таблицей ниже), которая соответствует схеме, и вызвать хранимый процесс следующим образом;
var cmd = new SqlCommand("AddSomeStuff", sqlConn) {CommandType = CommandType.StoredProcedure};
var param = new SqlParameter("@theStuff", SqlDbType.Structured) {Value = table};
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();