About @@Rowcount in SQL Server

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

الكود

IF EXISTS(SELECT * FROM Table1 WHERE Id = @id) 
    BEGIN 
       UPDATE Table1 SET Column1 = @newValue WHERE Id = @id 
    END 
    ELSE 
    BEGIN 
       INSERT INTO Table1 (Id, Column1) VALUES (@id, @newValue) 
    END

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

UPDATE Table1 SET Column1 = @newValue WHERE Id = @id 
    IF @@ROWCOUNT = 0 
    BEGIN 
       INSERT INTO Table1 (Id, Column1) VALUES (@id, @newValue) 
    END

هذا الموضوع للاخ BADRMEDIA مراقب منتديات الفجول بيسك الله يبارك فية ان شاء الله تعالى

Advertisements

شاركنا بارد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s