مقدار دهی خودکار در sql | استوایی | ostovaee

مقدار دهی خودکار در Sql

گاهی اوقات هنگام ساخت جدول لازم است یک فیلد وجود داشته باشد تا مقادیر آن بصورت خودکار پر شود و تکراری هم نباشد. در این آموزش با مقدار دهی خودکار در Sql بصورت کامل آشنا خواهید شد. در آموزش بعدی ساخت جدول در Sql را یاد خواهید گرفت. در آموزش قبلی نحوه ساخت دیتابیس را یاد گرفتید.

آموزش رایگان Sql Server | استوایی

افزایش خودکار یک فیلد در Sql

برای اینکه مقدار دهی خودکار در Sql انجام شود باید یک فیلد از نوع عدد صحیح را بصورت identity تعریف کرد. در این حالت برنامه‌نویس حق مقداردهی به این فیلد را بصورت پیش فرض ندارد. مقادیر این فیلد بصورت پیش فرض از یک شروع شده و به میزان یک واحد افزایش داده میشود. البته امکان مشخص کردن عدد شروع و میزان افزایش وجود دارد.

در طول عمر جدول، مقدار Identity تکرار نخواهد شد یعنی اگر کد 5 تولید شود و حتی کد 5 حذف شود هرگز کد 5 به رکوردهای بعدی اختصاص داده نمی‌شود. در واقع فیلد Identity دارای دو مشخصه است یکی اینکه بدون تکرار است یعنی هیچ موقع مقادیر تکراری اختصاص نمی‌دهد و دوم اینکه روند رشد اعداد بصورت صعودی است و همیشه عدد رکورد بعدی ار رکوردهای قبلی بزرگتر است. جهت تعریف فیلد بصورت Indentity مقابل فیلد عدد صحیح عبارت ” Indentity” را قرار دهید.

PersonId int Identity

در حالت فوق بصورت پیش فرض مقادیر از یک اختصاص داده می‌شود و به میزان یک عدد افزایش می‌یابد برای تغییر عدد شروع و میزان افزایش باید این مقادیر را داخل پرانتز بصورت زیر مشخص کنید. (عدد اول، مقدار شروع و عدد دوم میزان افزایش اعداد را مشخص می‌کند)

PersonId int Identity(20,2)  مقدار شروع 20 است و دو تا دو تا افزایش پیدا می‌کند 20، 22، 24 و ...

اگر یک جدول Truncate شود با توجه به نحوه عملکرد دستور Truncate که در واقع جدول جدید می‌سازد مقداردهی فیلد Identity از ابتدا شروع می‌شود.

جادوی استوایی Sql Server |استوایی

دستور identity در Sql

گاهی اوقات بنا به شرایط لازم است مقدار دهی خودکار در Sql برای یک فیلد انجام نشود و فیلد Identity در هنگام درج اطلاعات مقداردهی شود و بصورت اتومات این اتفاق نیافتد برای اینکار باید دستور زیر را قبل از دستور درج اطلاعات قرار دهید.

set identity_insert نام جدول مورد نظر on 
بطور مثال
set identity_insert person on 

پس از درج اطلاعات موردنظر با دستور زیر امکان درج عدد در فیلد Identity را قطع کنید تا مجدد از این به بعد بصورت خودکار مقداردهی انجام شود و امکان درج مقدار بصورت دستی نباشد.

set identity_insert نام جدول مورد نظر off
بطور مثال
set identity_insert person off 

آموزش مقدار دهی خودکار در Sql

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *