نمایش نتایج 1 تا 2 از 2

نام تاپیک: بروز رسانی با CURSOR در SP

  1. #1

    بروز رسانی با 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

  2. #2
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    تهران
    سن
    60
    پست
    293

    نقل قول: بروز رسانی با 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;

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •