تقييم الموضوع :
  • 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]



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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معلومة ---- Unicode ---------- RaggiTech 0 551 21-10-12, 07:00 PM
آخر رد: RaggiTech
  معلومة --- دالة coalesce --- RaggiTech 0 866 21-10-12, 06:49 PM
آخر رد: RaggiTech
  معلومة --- القوادح Triggers RaggiTech 3 1,910 21-10-12, 06:48 PM
آخر رد: RaggiTech
  معلومة --- البحث الصوتي مع الدالة --- Difference & soundex --- مهم جداً RaggiTech 4 711 21-10-12, 05:51 PM
آخر رد: RaggiTech
  معلومة --- الأمر Truncate RaggiTech 0 424 21-10-12, 05:35 PM
آخر رد: RaggiTech
  معلومة --- اعلامك بريدياً بتوقف SQL Server خطيرة جداً RaggiTech 1 636 21-10-12, 05:16 PM
آخر رد: RaggiTech
  معلومة --- Word Count RaggiTech 1 390 21-10-12, 05:08 PM
آخر رد: RaggiTech
  معلومة --- Stored Procedure RaggiTech 3 817 21-10-12, 05:07 PM
آخر رد: RaggiTech
  معلومة --- SQL Server 2008 RaggiTech 0 380 21-10-12, 05:00 PM
آخر رد: RaggiTech
  معلومة --- Openrowset --- هامة للغاية RaggiTech 4 482 21-10-12, 04:53 PM
آخر رد: RaggiTech

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


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