متغییر ها در SQL Server 2005 : بحث متغییرها از بحثهای پایه ای هر زبان میباشد ، اما این بحث در SQL رنگ و بوی دیگه ای داره ! دلیلش هم اینه که عدم انتخاب متغییر مناسب برای داده هامون باعث : <!--[if !supportLists]-->1- <!--[endif]-->افت سرعت بازیابی اطلاعات <!--[if !supportLists]-->2- <!--[endif]-->افزایش حجم داده های ذخیره شده میشود و این دو مورد در هیچ مدل پایگاه داده ای مورد قبول نیست . پس سعی کنید توجه بیشتری به این بحث هر چند ساده ولی کاربردی داشته باشید . توضیح مختصری از انواع مهمتر در این بخش ارائه شده و پیگیری بحث مربوطه به خواننده واگذار میشود . انواع متغییرها در SQL Server 2005 : <!--[if !supportLists]-->1- <!--[endif]-->متغییرهای عمومی (Global) <!--[if !supportLists]-->2- <!--[endif]-->متغییرهای محلی (Local) <!--[if !supportLists]-->1- <!--[endif]-->متغییرهای عمومی : این نوع متغییرها توسط سیستم تعریف و نگهداری میشود ، لیستی از این متغییرها به نقل از MSDN در ذیل آورده شده است : · <?XML:NAMESPACE PREFIX = V /><V:SHAPETYPE id=_x0000_t75 coordsize="21600,21600" o:spt="75" oreferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><?XML:NAMESPACE PREFIX = O /><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1025 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@CONNECTIONS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1026 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@CPU_BUSY (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1027 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@CURSOR_ROWS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1028 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@DATEFIRST (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1029 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@DBTS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1030 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@ERROR (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1031 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@FETCH_STATUS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1032 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@IDENTITY (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1033 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@IDLE (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1034 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@IO_BUSY (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1035 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@LANGID (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1036 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@LANGUAGE (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1037 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@LOCK_TIMEOUT (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1038 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@MAX_CONNECTIONS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1039 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@MAX_PRECISION (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1040 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@NESTLEVEL (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1041 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@OPTIONS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1042 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@PACK_RECEIVED (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1043 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@PACK_SENT (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1044 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@PACKET_ERRORS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1045 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@PROCID (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1046 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@REMSERVER (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1047 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@ROWCOUNT (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1048 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@SERVERNAME (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1049 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@SERVICENAME (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1050 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@SPID (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1051 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TEXTSIZE (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1052 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TIMETICKS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1053 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TOTAL_ERRORS (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1054 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TOTAL_READ (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1055 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TOTAL_WRITE (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1056 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@TRANCOUNT (Transact-SQL) · <V:SHAPE style="WIDTH: 12pt; HEIGHT: 12pt" id=_x0000_i1057 type="#_x0000_t75" alt=""><V:IMAGEDATA src="file:///D:\Users\Hosein\AppData\Local\Temp\msohtml1\01\clip_image001.gif" o:href="http://i.msdn.microsoft.com/Platform/Controls/Toc/resources/e.gif"></V:IMAGEDATA></V:SHAPE><!--[if !vml]--><!--[endif]-->@@VERSION (Transact-SQL) <!--[if !supportLists]-->2- <!--[endif]-->متغییرهای محلی (Local) این نوع متغییرها که توسط کاربر تعریف میشوند عموما برای ذخیره سازی داده های حاصل از محاسبات میانی بکار میروند ، جهت تعریف این نوع متغییر ها باید از دستور Declare استفاده کنیم و البته لازم به ذکر است که لیست محدود تری از این متغییر ها زمان ایجاد جداول نیز در دسترس هستند . قوانین نامگذاری متغییر های زبان T-SQL مشابه قواعد نامگذاری دیگر زبانهای برنامه نویسی است با این تفاوت که ، نام متغییر الزاما باید با @ آغاز شود و بعد از آن یک حرف بزرگ یا کوچک یا یک عدد و بع از آن هر کاراکتر شامل حرف ، عدد یا زیر خط . تعریف متغییر : Declare @Variable_Name DataType Example : Declare @Temp int جهت مقدار دهی به متغییر ها از دستور Select یا Set استفاده میشود : Example : Set @Temp=20 Or Select @Temp=20 <H3 style="TEXT-ALIGN: justify; unicode-bidi: embed; DIRECTION: rtl" dir=rtl>لیستی از انواع متغییر ها محلی در ذیل به نقل از MSDN آورده شده است : <H3 dir=ltr>Exact Numerics (اعداد صحیح) bigint decimal int numeric smallint money tinyint smallmoney bit <H3 dir=ltr>Approximate Numerics (اعداد ممیز شناور) float real <H3 dir=ltr>Date and Time (ساعت و زمان) datetime smalldatetime <H3 dir=ltr>Character Strings (غیر یونی کد کاراکتر و رشته) char text varchar <H3 dir=ltr>Unicode Character Strings (کاراکتر و رشته یونی کد) nchar ntext nvarchar <H3 dir=ltr>Binary Strings(رشته های باینری) binary image varbinary <H3 dir=ltr>Other Data Types (انواع داده های دیگر) cursor timestamp sql_variant uniqueidentifier table xml از بین تمام انواع داده ای انواع Char , NChar , VarChar , NVarChar , Text , NText را در مطالب بعدی بیشتر توضیح میدم . مراجع : http://msdn2.microsoft.com/en-us/library/ms187752.aspx http://barnamenevis.org/forum/showthread.php?t=76456 http://msdn2.microsoft.com/en-us/library/ms188915.aspx و چند تا کتاب فارسی