如果我们想在 SQL 中向表中插入多个值,我们可以使用以下方法:
INSERT INTO MyTable VALUES (1,'a','foo');
INSERT INTO MyTable VALUES (2,'b','bar');
INSERT INTO MyTable VALUES (3,'c','foo');
INSERT INTO MyTable VALUES (4,'d','bar');
INSERT INTO MyTable VALUES (5,'e','foo');
然而,这是一个 RBAR 操作,通常被认为是不好的:
所以我们会做一个基于集合的INSERT
语句:
INSERT INTO MyTable VALUES (1,'a','foo'), (2,'b','bar'), (3,'c','foo'), (4,'d','bar'), (5,'e','foo');
如果我们正在创建一个 .NET 应用程序,并且想要在单击按钮时执行上述插入操作,我们将使用 ADO.NET 库并希望执行上述基于集合的操作,而不是 RBAR 库。
然而,这似乎并不容易做到,谷歌搜索带来了以下结果
使用 for 循环将多条记录插入 SQL Server 数据库
这似乎建议INSERT
在循环中执行语句,因此运行INSERT
每个循环迭代(因此是 RBAR 操作)
我不明白这一点,如果 RBAR 不好,为什么在 ADO.NET 库中对基于集合的操作的内置支持似乎很少,导致最好的方法是 RBAR?