如何使用经典 ASP 更新 SQL 中的多条记录
How to update multiple records in SQL using Classic ASP
我正在尝试更新 Classic ASP 中具有相同社交的两条记录,但我不确定如何操作。这就是我所拥有的......但它不会更新两条记录。
set rsTblEmpl=Server.CreateObject("ADODB.Recordset")
if 1=1 then
sql = "select * from tblEmpl where ssn=" & strSsn & ";"
else
sql = "select * from tblEmpl where eight_id=" & intEight_id & ";"
end if
rsTblEmpl.open sql, conn, 2, 3
if not rsTblEmpl.eof then
rsTblEmpl("posid") = StrPosId
rsTblEmpl("posname") = StrPosName
rsTblEmpl.update
end if
rsTblEmpl.close
set rsTblEmpl=nothing
它只更新 1 个值的原因是因为您没有遍历所有记录。您只会更新它找到的第一条记录。因此,如果有多个记录具有相同的 SSN,则必须将 if
语句更改为循环。
do until rsTblEmpl.eof
rsTblEmpl("posid") = StrPosId
rsTblEmpl("posname") = StrPosName
rsTblEmpl.update
rsTblEmpl.movenext
loop
或者您可以使用参数化 UPDATE
语句一次性完成所有这些:
UPDATE tblEmpl SET posid = ?, posname = ? WHERE ssn = ?
我假设顶部的 if 1=1
是占位符,因为现在它将始终为真,因此不需要 else
。
我正在尝试更新 Classic ASP 中具有相同社交的两条记录,但我不确定如何操作。这就是我所拥有的......但它不会更新两条记录。
set rsTblEmpl=Server.CreateObject("ADODB.Recordset")
if 1=1 then
sql = "select * from tblEmpl where ssn=" & strSsn & ";"
else
sql = "select * from tblEmpl where eight_id=" & intEight_id & ";"
end if
rsTblEmpl.open sql, conn, 2, 3
if not rsTblEmpl.eof then
rsTblEmpl("posid") = StrPosId
rsTblEmpl("posname") = StrPosName
rsTblEmpl.update
end if
rsTblEmpl.close
set rsTblEmpl=nothing
它只更新 1 个值的原因是因为您没有遍历所有记录。您只会更新它找到的第一条记录。因此,如果有多个记录具有相同的 SSN,则必须将 if
语句更改为循环。
do until rsTblEmpl.eof
rsTblEmpl("posid") = StrPosId
rsTblEmpl("posname") = StrPosName
rsTblEmpl.update
rsTblEmpl.movenext
loop
或者您可以使用参数化 UPDATE
语句一次性完成所有这些:
UPDATE tblEmpl SET posid = ?, posname = ? WHERE ssn = ?
我假设顶部的 if 1=1
是占位符,因为现在它将始终为真,因此不需要 else
。