itarfand.com mhkarami97.ir
استفاده از unique index در ستون با مقدار null توسط Filter Index
در تغییری که لازم بود برای تسک جدید، تو دیتابیس بدیم. باید یه فیلد جدید به یکی جداول اضافه میکردیم که مقدار اون هم برابر با GUID بود
با توجه به مقداری که میگره، نوعش رو برابر با Unique در نظر گرفته بودیم.نکته ای که بود اینه که این فیلد میتونستن در بعضی موارد مقدار Null هم داشته باشه.
همه چی داشت خوب پیش میرفت تا اینکه توی محیط تست خطاها شروع شدن، خطاها هم میگفتن که نمیشه ستون جدیدی با مقدار نال در این فیلد جدید به دیتابیس اضافه کرد
در واقع مقدار Null رو Unique در نظر میگرفت و برای مقادیر جدید، جلوی ثبت سطر جدید با مقدار Null رو میگرفت
با کمی جستجو به Filter Index رسیدیم که راه حل مشکل ما بود که میتونید دربارش در داکیومنت زیر مطالعه کنید
توسط این نوع از Index شما میتونید شرط بزارید که ایندکس در چه زمان هایی ساخته بشه. بطور مثال اگه یه فیلد دیگه فقط مقدار x رو داشت، ایندکس رو درست کن.
پس ما شرطی گذشتیم تا فقط برای مقادیر غیر Null در این فیلد جدید ایندکس ساخته بشه. برای اینکار میتونید شبیه عکس زیر تو قسمت Filter هر Index شرطی که میخواید رو بزارید
البته قبلش لینک بالا رو مطالعه کنید تا از پشتیبانی این نوع ایندکس در جدولی که میخواید مطمئن بشید
تو قسمت گفته شده کافیه شرطی که میخواید رو بزارید. بطور مثال :
[ISR] IS NOT NULL
یا اگه خواستید بصورت کوئری کار بالا رو انجام بدید میتونید بصورت زیر انجام بدید
CREATE UNIQUE NONCLUSTERED INDEX [FUIX_New_Re(ISR)] ON [new].[Re] ([ISR]) WHERE ([ISR] IS NOT NULL) ON [Tse]
لینک مطلب در وبلاگ
مطلبی دیگر از این انتشارات
دیزاین پترن State در عمل
مطلبی دیگر از این انتشارات
منتقل کردن دیتا به دیتابیس جدید در SQL Server
مطلبی دیگر از این انتشارات
شخصی سازی قالب انگولار NGX Admin (افزودن فونت دلخواه)