21-10-12, 04:46 PM
كاتب الموضوع : BADRMEDIA
لو أردنا مثلاً اضافة سجل لحقل لا يتكرر عن طريق اجراء مخزن SP
سيكون هذا الكود
حيث أننا نبحث عن السجل ولو وجدناه نقوم بعمل تحديث UPDATE ولو لم نجده نقوم بعمل اضافة INSERT
هنا نحن قمنا بعمل خطوة قبل الاضافة أو التحديث ، إذن هناك خطوتين
ماذا لو أردنا أن يكون الأمر خطوة واحدة أو اثنين فى حالة عدم وجود السجل
أنه دور الدالة @@ROWCOUNT حيث تعود بعدد السجلات التى تأثرت بالتحديث
إذن سنقوم بتحديث السجل وإذا عادت الدالة @@ROWCOUNT بالقيمة = صفر إذن لم يتم تحديث سجل نظراً لعدم وجود سجلات وبالتالى نبدأ فى عملية الاضافة ويكون الكود كالتالي :
لو أردنا مثلاً اضافة سجل لحقل لا يتكرر عن طريق اجراء مخزن 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]