.NET多行SQL插入支持基于集合的操作

时间:2018-07-25 08:11:41

标签: sql .net ado.net rbar

如果要在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操作,通常被认为是不好的:

RBAR: ‘Row By Agonizing Row’

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?

0 个答案:

没有答案