داشتن ستون منحصر بفرد با چند مقدار NULL

بعضی مواقع نیاز داریم که یک ستون منحصر به فرد چند مقدار NULL داشته باشد اما اگر یک کلید Unique روی ستونی ایجاد کنیم آنگاه تنها یک نمونه از مقدار NULL می توانیم داشته باشیم.

به عنوان مثال جدولی به نام Person داریم که مشخصات افراد را نگهداری می کند و ستونی به نام “شماره ملی” وجود دارد که Null able است؛ این ستون چندان اهمیتی در کار ما ندارد و می تواند NULL باشد ولی برای بحث جامعیت داده ها ما مجبوریم که مقدار این ستون منحصر بفرد باشد. چون مقدار شماره ملی خاص فرد است.

Filtered Index در نسخه ۲۰۰۸ معرفی شده است. که کاربرد اصلی آن بهینه کردن nonclustered index هست و مزیت های فراوانی در مقابل full-index دارد. با کمک این نوع Index ما می توانیم روی یک زیر مجموعه ی محدودی از رکورد ها شاخص را تعریف کنیم. با این کار حجم اطلاعاتی که در شاخص نگهداری می شود کمتر از نوع Full آن خواهد بود.

Filtered Index در نسخه ۲۰۰۸ معرفی شده است. که کاربرد اصلی آن بهینه کردن nonclustered index هست و مزیت های فراوانی در مقابل full-index دارد. با کمک این نوع Index ما می توانیم روی یک زیر مجموعه ی محدودی از رکورد ها شاخص را تعریف کنیم. با این کار حجم اطلاعاتی که در شاخص نگهداری می شود کمتر از نوع Full آن خواهد بود.

کافیه از ماده WHERE در انتهای تعریف یک INDEX استفاده کنیم. و شاخص را تنها روی مقادیری که not null هستند تعریف کنیم :

USE tempdb
CREATE TABLE Person
(National_id CHAR(10) NULL
CREATE UNIQUE NONCLUSTERED INDEX multi_null
ON Person (National_id)
WHERE National_id IS NOT NULL;
--Done
INSERT INTO Person VALUES(NULL)
--Done
INSERT INTO Person VALUES(NULL)
--Done
INSERT INTO Person VALUES(1234567890)
--Cannot insert duplicate key row in object 'dbo.Person' with unique index 'multi_null'.
INSERT INTO Person VALUES(1234567890)
این نوشته در SQL Server ارسال شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

7 دیدگاه دربارهٔ «داشتن ستون منحصر بفرد با چند مقدار NULL»

  1. Roin می‌گوید:

    Shiver me tmiebrs, them’s some great information.

  2. Prakash می‌گوید:

    Good to find an epxert who knows what he’s talking about!

دیدگاه‌ها غیرفعال هستند.