我有一个巨大的存储过程,我试图优化它。基于表A列的表B的更新列
我有一个临时表一个,与列ID。
我有一个列的主表B中标识 &一个布尔字段测试
对于所有标识的表A,我需要测试= 1表B.
例子: 一个
Id
--
1
2
3
我需要得到B表如下。 我已经在表B中的ID字段中,我只需要更新 检测柱 乙
Id Test
-- ----
1 1
2 1
3 1
4
5
6
我目前通过表一个使用while循环循环并为每个ID 我正在更新表B中的测试列。
WHILE (1 = 1)
BEGIN
-- Exit loop if no more Transactions
IF @@ROWCOUNT = 0 BREAK;
Update [B]
set Test = 1
where Id = (SELECT TOP 1 Id
FROM #B
WHERE Id > @Id1
ORDER BY Id)
END
PS:@ Id1是存储过程的输入参数。
我想不出有任何其他有效的方法,但 我的查询花了很多时间来运行.. 请让我知道是否有更好的方法来做同样的事情。
谢谢您的解决方案! – CodeNinja