منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيفية التعامل مع المتغيرات داخل SQL Server - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم مقالات SQL SERVER (http://vb4arb.com/vb/forumdisplay.php?fid=84)
+--- الموضوع : كيفية التعامل مع المتغيرات داخل SQL Server (/showthread.php?tid=6625)



كيفية التعامل مع المتغيرات داخل SQL Server - RaggiTech - 21-10-12

كاتب الموضوع : 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 ) هو اسم الجدول المراد إرجاع عدد سجلاته


بالتوفيق للجميع ؛؛؛؛