21-10-12, 07:03 PM
كاتب الموضوع : Mr. Ahmed Negm
السلام عليكم ورحمة الله وبركاته
السلام عليكم ورحمة الله وبركاته
كثيراً ما تود العمل على إجراء عملية حسابية داخل SQL Stored Procedure أو SQL Functions ، مثل عمليات الجمع والطرح وما إلى ذلك ، أو أحيانا تود إسناد قيمة ما لمتغير معين لتعيد استخدام تلك القيمة فيما بعد فيما تريد. إليك الآتي:
الشكل العام للجملة:
كود :
[color=#000000][COLOR=#007700]DECLARE @<[/color][color=#0000bb]اسم المتغير[/color][color=#007700]> <[/color][color=#0000bb]نوع المتغير[/color][COLOR=#007700]>
[/COLOR][/COLOR]
مثال:
كود :
[color=#000000][COLOR=#007700]DECLARE @[/color][COLOR=#0000bb]MyVar INT
[/COLOR][/COLOR]
حيث ( MyVar ) هو اسم المتغير ، ولابد أن يكون مسبوقاً دائماً بعلامة ( @ ) في أي تعامل مع SQL Server ، وتمثل ( INT ) نوع المتغير لديك
-----------------------------------------
أما عن إسناد القيم لهذا المتغير فتكون مثلاً كالاتي:
الشكل العام للجملة هو:
استخدم SET او SELECT ... لوضع قيمة ما داخل المتغير المحدد كما يلي
كود :
[color=#000000][COLOR=#0000bb] SET[/color][color=#007700]|[/color][color=#0000bb]SELECT [/color][color=#007700]@<VAR [/color][color=#0000bb]NAME[/color][color=#007700]> = [/color][COLOR=#0000bb]VALUE
[/COLOR][/COLOR]
والمثال كما يلي:
كود :
[color=#000000][COLOR=#0000bb] SET [/color][color=#007700]@[/color][color=#0000bb]MyVar [/color][color=#007700]= [/color][COLOR=#0000bb]50
[/COLOR][/COLOR]
وكي تلاحظ الإستفادة من تلك المعلومة ، فقم بنسخ الكود التالي في محرر SQL Server وقم بالتجربة الآن:
كود :
[color=#000000][COLOR=#007700]DECLARE @[/color][COLOR=#0000bb]MyVar INT
SELECT [/COLOR][color=#007700]@[/color][color=#0000bb]MyVar [/color][color=#007700]= [/color][COLOR=#0000bb]7
[/COLOR][color=#007700]PRINT @[/color][COLOR=#0000bb]MyVar
[/COLOR][/COLOR]
أو المثال التالي ، والذي يرجع بعدد سجلات جدول معين ويضع العدد داخل جملة معينة بتنسيق معين كما يلي:
كود :
[color=#000000][COLOR=#007700]USE [[/color][color=#0000bb]ESHOP[/color][COLOR=#007700]]
DECLARE @[/COLOR][COLOR=#0000bb]MyVar INT
SELECT [/COLOR][color=#007700]@[/color][color=#0000bb]MyVar [/color][color=#007700]= ([/color][color=#0000bb]SELECT COUNT[/color][color=#007700](*) [/color][color=#0000bb]FROM PRODUCTS[/color][COLOR=#007700])
PRINT [/COLOR][color=#dd0000]'This table contains ' [/color][color=#007700]+ [/color][color=#0000bb]CONVERT[/color][color=#007700]([/color][color=#0000bb]VARCHAR[/color][color=#007700],@[/color][color=#0000bb]MyVar[/color][color=#007700]) + [/color][COLOR=#dd0000]' records'
[/COLOR][/COLOR]
'
حيث ( ESHOP ) هو اسم قاعدة البيانات التي سأعمل عليها ، و ( PRODUCTS ) هو اسم الجدول المراد إرجاع عدد سجلاته
بالتوفيق للجميع ؛؛؛؛