ورود

View Full Version : سوال در رابطه با CONSTRAINT محدودیت unique



raha_ebr
شنبه 23 خرداد 1394, 10:27 صبح
با سلام و خسته نباشید به همه دوستان
میخواستم بدونم عبارت جلوی constraintکه قرمز کردم ، چیه؟یه اسم مستعاره واسه جدوله آیا؟؟؟؟؟ چون اسم جدول که نیست تو pdf که داشتم اسم جدولش Person بود
(CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName

SabaSabouhi
شنبه 23 خرداد 1394, 10:41 صبح
با سلام و خسته نباشید به همه دوستان
میخواستم بدونم عبارت جلوی constraintکه قرمز کردم ، چیه؟یه اسم مستعاره واسه جدوله آیا؟؟؟؟؟ چون اسم جدول که نیست تو pdf که داشتم اسم جدولش Person بود
(CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName



سلام
اسم خود Constraint هست. هر چیزی تو Sql یه اسم داره ( غیر از جدول‌ها، اندیس‌ها، کلید‌ها و constraintها هم همگی اسم دارن )
مثلاً اگه خواستی این constraint رو حذف کنی، اگه اسم نداشت چطوری می‌خواستی به sql بگی که چی رو می‌خوای حذف کنی؟

صبا صبوحی

raha_ebr
شنبه 23 خرداد 1394, 11:06 صبح
پس برای یه محدودیت که فقط به یه فیلد دادیم چکار کنیم که اسم براش تعریف نکردیم مثل این؟
,ID int not null UNIQUE

SabaSabouhi
شنبه 23 خرداد 1394, 12:56 عصر
پس برای یه محدودیت که فقط به یه فیلد دادیم چکار کنیم که اسم براش تعریف نکردیم مثل این؟
,ID int not null UNIQUE




سلام
از جدولت یه script بگیر، می‌بینی که برای این هم یه نام گذاشته شده.
مثلاً وقتی می‌نویسی:


CREATE TABLE MyTable(
Id integer Identity( 1, 1 ) PRIMARY KEY,
Name nvarchar( 50 )
)


هیچ نامی نمی‌دی، اما خودش نام PK_MyTable رو براش می‌گذاره.
خلاصه این که همه چیز یه اسم داره توی دیتابیس‌های SQL Server.
و دقیقاً به همین دلیل، من مدت‌ها هست که سعی می‌کنم scriptهام رو همون شکل بنویسم ( مثل scriptای که خودش می‌سازه )
یعنی مثلاً بجای مثالی که قبلاً زدم این رو می‌نویسم:


CRATE TABLE MyTable(
Id integer Identity( 1, 1 ),
Name nvarchar( 50 ),
CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([Id] ASC)
)

حداقلش اینه که اگه دلم خواست اسم کلید اصلی رو یه چیز دیگه بدم ( که البته این کار رو نمی‌کنم )، اختیارش دست خودمه

صبا صبوحی