我有一个Excel文件,在一列中我有数千个SELECT COUNT(*)语句要在SQL Server上执行。我想在A列中执行所有SELECT语句,并在B列中填充结果
A B
-------------------------------------------------------------------------
SELECT COUNT(*) FROM MYTABLE WHERE <condition 1> 5
SELECT COUNT(*) FROM MYTABLE WHERE <condition 2> 0
SELECT COUNT(*) FROM MYTABLE WHERE <condition 3> 2
我设法编写了以下代码(对ADO来说是新手)并且它可以正常运行,但是在2.5秒内执行每个SELECT COUNT(*)非常慢! SQL数据库是本地的。我有什么办法可以显着提高速度,因为我有超过500,000个这样的查询要运行。或者,我正在考虑将查询从Excel导入到SQL表并运行SQL脚本来执行类似的任务,但我没有SQL脚本的经验,因此希望修复我的VBA脚本。谢谢!
Set rsPubs = New ADODB.Recordset
With rsPubs
.ActiveConnection = cnPubs
Dim rng As Range
Set rng = ActiveSheet.Range("A100:A500")
For Each cell In rng
sqlstmt = cell.Value
.Open sqlstmt
cell.Offset(0, 1).Value = .Fields(0).Value
.Close
Next
End With