Я пишу приложение .NET, которое записывает данные в SQL Server 2008r2. У меня есть два варианта вставки данных: либо я могу создать оператор вставки большой строки и отправить его в виде текстовой команды, либо я могу собрать данные в .NET DataTable и передать их как параметр с табличным значением. Каковы преимущества и затраты каждого метода?
(Я опускаю большую часть кода, так как я просто спрашиваю об относительных преимуществах, а не о конкретном синтаксисе)
например:
Вариант 1:
string insert = @"insert into MyTable (id, val) values
( 1, 'a'),(2,'b'),(3,'c'),(4,'d');"
Вариант 2:
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("val", typeof(string));
....
create procedure uspMyProc
@tt ttMyTableType readonly
as
begin
insert into TestTable1 (id, strValue)
select myId, myVal from @tt;
end"
Спасибо за любой помощь.