Мне нравится находить способ обрабатывать несколько обновлений базы данных sql (с одним обходом базы данных). Я читал о табличных параметрах в SQL Server 2008 http://www.codeproject.com/KB/database/TableValueParameters.aspx, который кажется действительно полезным. Но, похоже, мне нужно создать как хранимую процедуру, так и тип таблицы, чтобы использовать ее. Это правда? Может из-за безопасности? Я хотел бы запустить текстовый запрос просто так:
var sql = "INSERT INTO Note (UserId, note) SELECT * FROM @myDataTable";
var myDataTable = ... some System.Data.DataTable ...
var cmd = new System.Data.SqlClient.SqlCommand(sql, conn);
var param = cmd.Parameters.Add("@myDataTable", System.Data.SqlDbType.Structured);
param.Value=myDataTable;
cmd.ExecuteNonQuery();
So
А) нужно ли мне создавать как хранимую процедуру, так и тип таблицы, чтобы использовать TVP? и
B) какой альтернативный метод рекомендуется для отправки нескольких обновлений (и вставок) в SQL Server?