Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008-使用循环进行多个更新_Sql_Sql Server 2008 - Fatal编程技术网

SQL Server 2008-使用循环进行多个更新

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

我正在寻找一种加速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 = 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:请点击我答案中的链接。