我正在编写一个将数据写入 SQL Server 2008r2 的 .NET 应用程序。我有两个插入数据的选项,我可以创建一个大字符串插入语句,并将其作为文本命令发送,或者我可以在 .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"
谢谢你的帮助。