Dee*_*dhy 2 sql sql-server coldfusion batch-processing
我有一个包含大约3000条记录的电子表格.我需要将所有这些数据插入到新表中.所以在这种情况下使用批量插入机制是相当不错的.
所以我尝试了一个简单的例子,
<cfquery datasource="cse">
insert into Names
values
<cfloop from="1" to="3000" index="i">
('#i#')
<cfif i LT 3000>, </cfif>
</cfloop>
</cfquery>
Run Code Online (Sandbox Code Playgroud)
但由于SQL Server 2008一次只允许1000次批量插入,因此我收到错误.
那么如何制作单独的批次,每次包含999条记录并且可以一次执行?
您可以使用BULK INSERT应该处理极大数据集的语句.
数据需要采用CSV格式,您必须为文件位置创建变量.
<cfquery datasource="cse">
BULK INSERT Names
FROM '#variables.sCSVLocation#'
</cfquery>
Run Code Online (Sandbox Code Playgroud)
如果您有理由不使用BULK INSERT并希望将其分解为999的循环,那么您必须计算出数据集中有多少"记录",除以999以获得您的次数'我必须循环它.
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |