خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول
نویسنده : امیر انصاری
گاهی اوقات پیش می آید که می خواهیم یک فیلد از جدولی را طوری تنظیم کنیم که امکان ثبت مقدار تکراری در آن نباشد. مثلا اگر شما فیلدی بنام کد ملی داشته باشید، طبیعی است که نباید اجازه بدهید کد ملی تکراری وارد جدول شما بشود. در این آموزش در جدول ما فیلد کد ملی وجود ندارد، اما می خواهیم از فیلد شماره موبایل برای این منظور استفاده نماییم.

نرم افزار سامانه مودیان راهکار



روش جلوگیری از ثبت داده های تکراری در یک فیلد


ابتدا وارد محیط اس کیو ال سرور 2012 شوید و مشابه تصویر زیر جدولتان را در حالت ویرایش فیلدها باز کنید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

برای شروع ابتدا تیک گزینه Allow Nulls را برای فیلد شماره موبایل (MobileNumber) بردارید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

با این کار اول مطمئن می شویم که کاربر نمی تواند از وارد کردن شماره موبایل صرفنظر کند و حتما باید مقداری را برای آن مشخص کند. حالا می خواهیم مطمئن شویم که کاربر نمی تواند شماره موبایل تکراری در جدول وارد کند. برای این کار اس کیو ال سرور مکانیزمی دارد با نام ایندکس (Index).
البته ایندکس ها در اس کیو ال سرور کاربردهای دیگری هم دارند که به مرور با سایر کاربردهایشان نیز آشنا خواهیم شد، اما در اینجا از یک کاربرد خاصشان استفاده می کنیم و آن کاربرد یکتایی (Unique Key) می باشد.

روش معرف ایندکس یکتایی (Unique Key) برای یک فیلد در جداول اس کیو ال سرور


ابتدا در محیط ویرایش جدول بر روی یک قسمت خالی از صفحه راست کلیک کنید و از منوی ظاهر شده گزینه Indexes/Keys را انتخاب کنید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

کادر محاوره ای Indexes/Keys مشابه تصویر زیر ظاهر می شود. در این کادر بر روی دکمه Add کلیک کنید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

مشابه تصویر زیر یک گزینه به پنجره سمت چپ اضافه می شود که بصورت پیش فرض نام IX_phoneBook نام دارد. بر روی آن کلیک کنید تا در حالت انتخاب قرار گیرد. (وقتی در حالت انتخاب قرار گیرد رنگ آن آبی می شود)

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

حالا در قسمت سمت چپ گزینه Columns را انتخاب کنید و بر روی دکمه مقابل آن که علامت [...] دارد کلیک کنید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

کادر محاوره ای Index Column ظاهر می شود.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

در قسمت Column Name فیلد MobileNumber را انتخاب کنید و بر روی دکمه OK کلیک کنید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

تاثیر انتخاب شما در تصویر زیر نمایش داده شده است.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

حالا در قسمت Type گزینه Unique Key را انتخاب کنید و سپس بر روی دکمه Close کلیک کنید. تصویر زیر راهنمای شما می باشد.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

حالا مشابه تصویر زیر از منوی File گزینه Save PhoneBook را انتخاب کنید تا تغییرات شما ذخیره شوند.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

کار معرفی فیلد یکتا خاتمه یافت. در ادامه به تست آن می پردازیم.

تست فیلد یکتا (Unique Key) در جداول اس کیو ال سرور


ابتدا با استفاده از گزینه Edit Top 200 rows که طی آموزشهای قبلی نیز دیدید، وارد محیط ویرایش داده های جدول شوید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

مشابه مقادیری که ما در تصویر زیر وارد کرده ایم، شما هم یک ردیف جدید ایجاد کنید. در فیلد شماره موبایل دقیقا همان شماره موبایلی را وارد کنید که در ردیف 2 وارد شده است. حالا کلید Enter در صفحه کلید را بفشارید.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

همانطور که خودتان هم می بینید، اس کیو ال سرور اجازه ثبت اطلاعات را به شما نمی دهد و با پیغام خطا مواجه می شوید. در این پیغام خطا (اگر با دقت به آن نگاه کنید) هم نام ایندکس ما که برای یکتایی شماره موبایل معرفی کردیم آمده است و هم شماره موبایل تکراری ما نیز در متن خطا موجود است.

برای رفع اشکال بر روی Ok کلیک کنید و مقدار شماره موبایل را به 09124444445 تغییر بدهید. حالا مجددا Enter کنید. اطلاعات بدون اشکال اضافه می شوند.

9. آموزش SQL Server به زبان ساده. جلوگیری از ثبت داده های تکراری در یک فیلد جدول

پس با این حساب، شما می توانید با استفاده از ویژگی ایندکس های یکتا، جلوی ثبت اطلاعات تکراری در جداول را نیز بگیرید.

یک نکته مهم در مورد این چند آموزش اخیر


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

در یک کلام اگر بخواهم بگویم : چه خوب !!!


آموزش قبلی : 8. آموزش SQL Server به زبان ساده. Allow Nulls در فیلدهای جداول اس کیو ال سرور

آموزش بعدی : 10. آموزش SQL Server به زبان ساده. انواع داده ها (Data Type) در اس کیو ال سرور



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.