1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

SQL Server 2005

شروع موضوع توسط minaaa ‏7/1/11 در انجمن SQL

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    متغییر ها در 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" o:preferrelative="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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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]-->[​IMG]<!--[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 (اعداد صحیح)




    <H3 dir=ltr>Approximate Numerics (اعداد ممیز شناور)




    <H3 dir=ltr>Date and Time (ساعت و زمان)




    <H3 dir=ltr>Character Strings (غیر یونی کد کاراکتر و رشته)




    <H3 dir=ltr>Unicode Character Strings (کاراکتر و رشته یونی کد)




    <H3 dir=ltr>Binary Strings(رشته های باینری)




    <H3 dir=ltr>Other Data Types (انواع داده های دیگر)









    از بین تمام انواع داده ای انواع 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
    و چند تا کتاب فارسی