admin

在ms-access表中插入多行的SQL代码

sql

我试图加快我的代码的速度,瓶颈似乎是通过ODBC从外部Access到Jet MDB的单独插入语句。我需要一次插入100行,并且必须重复多次。

是否可以使用SQL代码在表中插入多行?这是我尝试过的一些方法,但是它们都不起作用。有什么建议?

INSERT INTO tblSimulation (p, cfYear, cfLocation, Delta, Design, SigmaLoc,
                                Sigma, SampleSize, Intercept) VALUES 
(0, 2, 8.3, 0, 1, 0.5, 0.2, 220, 3.4),
(0, 2.4, 7.8, 0, 1, 0.5, 0.2, 220, 3.4), 
(0, 2.3, 5.9, 0, 1, 0.5, 0.2, 220, 3.4)


INSERT INTO tblSimulation (p, cfYear, cfLocation, Delta, Design, SigmaLoc,
                                Sigma, SampleSize, Intercept) VALUES 
(0, 2, 8.3, 0, 1, 0.5, 0.2, 220, 3.4) UNION
(0, 2.4, 7.8, 0, 1, 0.5, 0.2, 220, 3.4) UNION 
(0, 2.3, 5.9, 0, 1, 0.5, 0.2, 220, 3.4)

阅读 221

收藏
2021-05-10

共1个答案

admin

我在R(我正在使用的软件)中找到了一个优雅的解决方案。RODBC软件包具有函数sqlSave,该函数允许一次将整个data.frame追加到一个表中。它的工作速度几乎是事务中单个插入的速度的两倍。

library(RODBC)
MDB <- odbcConnectAccess("database.mdb")
sqlSave(channel = MDB, dat = sims, tablename = "tblSimulation", append = TRUE, rownames = FALSE)
odbcClose(MDB)
2021-05-10