Sql server 如何使用经典ASP更新SQL中的多条记录

Sql server 如何使用经典ASP更新SQL中的多条记录,sql-server,asp-classic,Sql Server,Asp Classic,我正在尝试用经典ASP中相同的社交网站更新两条记录,但我不确定如何更新。这就是我所拥有的。。。但它不会同时更新两个记录 set rsTblEmpl=Server.CreateObject("ADODB.Recordset") if 1=1 then sql = "select * from tblEmpl where ssn=" & strSsn & ";" else

我正在尝试用经典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

为什么选择然后更新?为什么不直接使用
update
sql语句呢。这里还要注意SQL注入。查看和/或存储过程。我可以在更新sql语句中使用if语句吗?您可以使用sql Server中的存储过程来处理条件逻辑并执行
update
语句。关于使用
ADODB.Command从VBScript调用存储过程,您只需搜索这能回答你的问题吗?不推荐第一种方法,让SQL Server通过
UPDATE
语句为您完成繁重的工作。不是说我推荐它,而是想回答为什么只有第一条语句得到更新。:)