تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: @@rowcount :::
#1
كاتب الموضوع : 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]



}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم