SQL Server 2008-使用循环进行多个更新
我正在寻找一种加速SQL的方法,因为我认为我没有有效地执行SQL,尽管它工作正常,但当有更多记录时,速度非常慢 我正在使用ASP/VBScript,但这是SQL更新问题 我有一个循环SQL Server 2008-使用循环进行多个更新,sql,sql-server-2008,Sql,Sql Server 2008,我正在寻找一种加速SQL的方法,因为我认为我没有有效地执行SQL,尽管它工作正常,但当有更多记录时,速度非常慢 我正在使用ASP/VBScript,但这是SQL更新问题 我有一个循环,接下来,捕获提交表单和过程,以捕获提交的SortNum for x = 1 to request.form.count ' -- Some where here, I captured the SortNum that associated with RecID SortNum = TheCapt
,接下来,
捕获提交表单和过程,以捕获提交的SortNum
for x = 1 to request.form.count
' -- Some where here, I captured the SortNum that associated with RecID
SortNum = TheCapturedRowNum
TheRecID = TheCapturedRecID
sql_UpdateSortNum = "Update Table1 SET SortNum = '"& SortNum &"' where RecID = '"& TheRecID "'"
conn.execute(sql_UpdateSortNum)
Next
目前,它正在工作,但记录越多(超过50条记录),速度就会越慢。我想循环并继续执行更新查询是一种不好的方式。有没有办法加快更新速度,比如存储和更新一次?请注意,SortNum
值不是FOR循环的(x)
如有任何建议,将不胜感激
谢谢,1/将“request.form”中的所有行发送到存储过程(作为参数having或as),然后使用语句
这种方式将避免来回调用数据库
2/如果您不想修改太多的代码,并且如果您有合理数量的行要更新,您可以加入更多的更新语句(假设成批包含大约50条更新语句),并将它们一起发送到DB:
"Update Table1 SET SortNum =...;Update Table1 SET SortNum =...;Update...;"
对不起,我不太明白。因此,我仍然需要循环,但是我不应该在代码中使用更新,而是应该创建一个包含2个参数(RecID、SortNum)的存储过程,然后在存储过程中使用updatesql,对吗?基本上,我仍然需要遍历存储过程并将这两个参数提供给更新存储过程?任何一个例子,都是值得赞赏的@milacay您应该在记录中循环并创建一个XML格式的字符串。然后,将该字符串发送到一个接受XML参数的存储过程。@milacay:UPDATE FROM允许您在一个UPDATE语句中更新更多行。我以前没有做过更新,但我会研究一下。顺便问一下,您是否有该XML的任何参考链接以及来自示例的更新?谢谢你的帮助。@milacay:请点击我答案中的链接。