0

如果我们想在 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:“通过痛苦的行来行”</a>

什么是 RBAR?我怎样才能避免它?

RBAR 与基于集合的 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 库。

然而,这似乎并不容易做到,谷歌搜索带来了以下结果

参数化插入多行

我应该如何多次插入多条记录?

使用 for 循环将多条记录插入 SQL Server 数据库

这似乎建议INSERT在循环中执行语句,因此运行INSERT每个循环迭代(因此是 RBAR 操作)

我不明白这一点,如果 RBAR 不好,为什么在 ADO.NET 库中对基于集合的操作的内置支持似乎很少,导致最好的方法是 RBAR?

4

0 回答 0