لماذا لا تظهر لي قيد فريد في ظل مؤشرات بدلا ثم في ظل قيود؟

StackOverflow https://stackoverflow.com/questions/1012969

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا خلقت قيدا على مائدتي TSQL مثل هذا:

alter table disabledqualities
add constraint uc_uIdQualCode
unique (userId, qualitycode)

في MSSMStudio يبين القيد في ظل مؤشرات بدلا من تحت القيود.

لماذا؟

و- EDIT--
وأنا أفهم أنه بإنشاء فهرس لفرض القيد، ولكن بعد ذلك لماذا لا يكون هناك عقدة تسمى "القيود"؟

هل كانت مفيدة؟

المحلول

وSQL Server بإنشاء مؤشر خلف الكواليس لفرض قيود

وهنا هو طريقة أخرى لكتابة هذا بإضافة الخادم nonclustered والقصص مزود لاستخدام فهرس nonclustered، يمكنك أيضا إنشاء عنقودية على توفير أنك لم يكن لديك PK التي تتجمع (الافتراضي) أو مؤشر آخر تتجمع بالفعل

alter table disabledqualities
add constraint uc_uIdQualCode
unique nonclustered (userId, qualitycode)

[عدل] هذه العقدة هي لإضافة القيد الاختيار، تتم إضافة قيود فريدة في مؤشراتها

وإما طريق الابتعاد عن المعالجات

نصائح أخرى

وتحقق القيود وترد القيود الافتراضي تحت عقدة القيود.

وSQL يستخدم مؤشرات لفرض قيود فريدة.

<اقتباس فقرة>   

وأنا أفهم أنه بإنشاء فهرس لفرض القيد، ولكن بعد ذلك لماذا لا يكون هناك عقدة تسمى "القيود"؟

وهذه العقدة هي لعرضه القيود CHECK.

والجواب الحقيقي هو "لأن Microsoft قال ذلك. إذا كنت تريد الإجابة، سيكون لديك ليطلب منهم".

ولأن القيود فريدة من نوعها يمكن العثور عليها في sysindexes عرض نظام

وحدد * من sysindexes حيث اسم = 'uc_uIdQualCode'

وهو ببساطة منطقي لإضافة constaint جديدة فريدة من نوعها من Studio تحتاج إلى انقر فوق إدارة زر مؤشر ومفاتيح. لذلك إذا كنت مضيفا أنه من مؤشرات، لديك لنرى ذلك في فهارس:)

وأنا أفكر ربما كنت لا أفهم ما قد تظهر في القيود becasue كنت لا تعرف ما هو القيد الاختيار. وهناك عقبة الاختيار التحقق من البيانات على إدراج أو تحديث لمعرفة ما اذا كان يجتمع نوعا من قاعدة العمل. فهو يستخدم لضمان سلامة البيانات. على سبيل المثال إذا كان لديك حقل عدد صحيح يجب أن يحتوي فقط على قيم 1،4 أو 5 بعد ذلك قمت بإعداد قيد تحقق للتأكد من أن 9 لا يتم إضافة أي وقت مضى إلى الميدان. ومن القيود الاختيار على حقل التاريخ قد تحدد أنه يجب أن يكون في وقت لاحق من التاريخ والوقت الحالي لحقل هذا هو PlannedCompletionDate أو أن CompletionDate يجب أن يكون في وقت لاحق من تاريخ البدء. هذه هي نوع من الأشياء التي تظهر في ظل قيود.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top