بروز رسانی با CURSOR در SP
سلام دوستان من توی یک SP یک متغییر از نوع جدول دارم که میخوام با استفاده از CURSOR مقادیر بعضی از سطرهای اونو تغییر بدم این کد رو گذاشتم ولی بعد از اجرا پیام میده که CURSOR من فقط خوندنی هست.
این کدهایی که من نوشتم
declare @tbl TABLE (_Bedehkar int , _Bestankar int , _
Baghimande int , _Tashkhis TName )
declare tblCur CURSOR
LOCAL
KEYSET
FOR SELECT _Bedehkar , _Bestankar, _Tashkhis , _Baghimande
FROM @tbl
--FOR UPDATE
open tblCur
fetch tblCur into @Bedeh,@Bestan,@tashkhis,@mablagh
while (@@FETCH_STATUS = 0) begin
set @Baghimande = @Baghimande + (@Bestan - @Bedeh)
if @Baghimande < 0 set @tashkhis = 0
else set @tashkhis = 1
UPDATE @tbl SET _Baghimande = ABS(@Baghimande) , _Tashkhis=@tashkhis
WHERE CURRENT OF tblCur
fetch next from tblCur into @Bedeh,@Bestan,@tashkhis,@mablagh
end
نقل قول: بروز رسانی با CURSOR در SP
به نظر نمی رسه شما اصلا احتیاچ به استفاد از یک cursor دارید. ببینید آیا کد زیر همان کاری را که می خواهید بکنید انجام نمی دهد:
declare @tbl TABLE (_Bedehkar int , _Bestankar int , _Baghimande int , _Tashkhis TName );
update
@tbl
set
_Baghimande = abs( _Baghimande + (_Bedehkar - _Bedehkar) ),
_Tashkhis = case when _Baghimande + (_Bedehkar - _Bedehkar) < 0 then 0 else 1 end
from
@tbl;