منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : معلومة ::: @@rowcount :::
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : BADRMEDIA



لو أردنا مثلاً اضافة سجل لحقل لا يتكرر عن طريق اجراء مخزن SP

سيكون هذا الكود


كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]IF [/color][color=#0000bb]EXISTS[/color][color=#007700]([/color][color=#0000bb]SELECT [/color][color=#007700]* [/color][color=#0000bb]FROM Table1 WHERE Id [/color][color=#007700]= @[/color][color=#0000bb]id[/color][COLOR=#007700])

    [/COLOR][COLOR=#0000bb]BEGIN

       UPDATE Table1 SET Column1 [/COLOR][color=#007700]= @[/color][color=#0000bb]newValue WHERE Id [/color][color=#007700]= @[/color][COLOR=#0000bb]id

    END

    [/COLOR][COLOR=#007700]ELSE

    [/COLOR][COLOR=#0000bb]BEGIN

       INSERT INTO Table1 [/COLOR][color=#007700]([/color][color=#0000bb]Id[/color][color=#007700], [/color][color=#0000bb]Column1[/color][color=#007700]) [/color][color=#0000bb]VALUES [/color][color=#007700](@[/color][color=#0000bb]id[/color][color=#007700], @[/color][color=#0000bb]newValue[/color][COLOR=#007700])

    [/COLOR][COLOR=#0000bb]END  
[/COLOR][/COLOR]


حيث أننا نبحث عن السجل ولو وجدناه نقوم بعمل تحديث UPDATE ولو لم نجده نقوم بعمل اضافة INSERT


هنا نحن قمنا بعمل خطوة قبل الاضافة أو التحديث ، إذن هناك خطوتين

ماذا لو أردنا أن يكون الأمر خطوة واحدة أو اثنين فى حالة عدم وجود السجل

أنه دور الدالة @@ROWCOUNT حيث تعود بعدد السجلات التى تأثرت بالتحديث

إذن سنقوم بتحديث السجل وإذا عادت الدالة @@ROWCOUNT بالقيمة = صفر إذن لم يتم تحديث سجل نظراً لعدم وجود سجلات وبالتالى نبدأ فى عملية الاضافة ويكون الكود كالتالي :



كود :
[color=#000000][COLOR=#0000bb]    UPDATE Table1 SET Column1 [/color][color=#007700]= @[/color][color=#0000bb]newValue WHERE Id [/color][color=#007700]= @[/color][COLOR=#0000bb]id

    [/COLOR][color=#007700]IF @@[/color][color=#0000bb]ROWCOUNT [/color][color=#007700]= [/color][COLOR=#0000bb]0

    BEGIN

       INSERT INTO Table1 [/COLOR][color=#007700]([/color][color=#0000bb]Id[/color][color=#007700], [/color][color=#0000bb]Column1[/color][color=#007700]) [/color][color=#0000bb]VALUES [/color][color=#007700](@[/color][color=#0000bb]id[/color][color=#007700], @[/color][color=#0000bb]newValue[/color][COLOR=#007700])

    [/COLOR][COLOR=#0000bb]END  
[/COLOR][/COLOR]