如果要在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操作,通常被认为是不好的:
What is RBAR? How can I avoid it?
RBAR vs. Set based programming for SQL
因此,我们将基于一组INSERT
语句:
INSERT INTO MyTable VALUES (1,'a','foo'), (2,'b','bar'), (3,'c','foo'), (4,'d','bar'), (5,'e','foo');
如果我们正在创建一个.NET应用程序,并且想在上面单击按钮进行上述插入,那么我们将使用ADO.NET库,并且希望执行上述基于集合的操作,而不是RBAR。
但是,这似乎不容易做到,并且Google搜索带来了以下结果
Parameterize insert of multiple rows
How should I multiple insert multiple records?
Inserting Multiple Records into SQL Server database using for loop
似乎建议您在循环中执行INSERT
语句,因此每个循环迭代都要运行INSERT
(因此需要执行RBAR操作)
我不明白这一点,如果RBAR不好,为什么在ADO.NET库中几乎没有内置的支持进行基于集合的操作的方法,从而导致最好的方式是RBAR?