Sql server 如何使用经典ASP更新SQL中的多条记录
我正在尝试用经典ASP中相同的社交网站更新两条记录,但我不确定如何更新。这就是我所拥有的。。。但它不会同时更新两个记录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
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
语句为您完成繁重的工作。不是说我推荐它,而是想回答为什么只有第一条语句得到更新。:)