CFLOOP和SQL Update

1 coldfusion ms-access sql-update cfloop

如何使用CFLOOP更新Access DB上的记录?我尝试使用下面的代码,但它似乎给了我一个重复的值而不是增量

我的代码:

<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource">
    update mytable
    set
    columnB = #i#
    where columnA = 'a'                                          
   </cfquery>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

columnB =所有数字3下的记录输出,应为1,2,3

我的桌子看起来像这样....

Column A|ColumnA1|ColumnB
A         A        
A         B
A         C
Run Code Online (Sandbox Code Playgroud)

列A和A1填充了先前的CFLOOP和SQL插入.

Bus*_*hes 6

每次运行更新时,您都要更新具有columnA ='a'的所有记录,您需要在where子句中使用更多条件来立即停止更新多个行.

您可以使用cfquery的result属性轻松查看已更新的行数,类似于下面的代码.

<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource" result='updated'>
    update mytable
    set
    columnB = #i#
    where columnA = 'a'                                          
   </cfquery>
   <cfdump var='#updated#' />
</cfloop>
Run Code Online (Sandbox Code Playgroud)

更新: 鉴于您更新的问题,示例更新的查询可能如此,因为columnA和ColumnA1的组合使行唯一.

<cfloop index="i" from="1" to="3">
<cfquery name="query" datasource="datasource" result='updated'>
    update mytable
    set
    columnB = #i#
    where columnA = 'a'      
    AND ColumnA1 = <cfqueryparam value='#i#' />                                    
   </cfquery>
   <cfdump var='#updated#' />
</cfloop>
Run Code Online (Sandbox Code Playgroud)