دليل للقيود الفريدة في Microsoft SQL Server

click fraud protection

عن طريق إنشاء ملف فريد قيد، يحدد مسؤولو SQL Server أن عمود قاعدة البيانات قد لا يحتوي على قيم مكررة. عندما تنشئ ملفًا فريدًا جديدًا قيد، يتحقق SQL Server من العمود المعني لتحديد ما إذا كان يحتوي على أي قيم مكررة. إذا كان الطاولة يحتوي على تكرارات ، يفشل أمر إنشاء القيد. وبالمثل ، بعد تحديد قيد فريد في عمود ، تفشل أيضًا محاولات إضافة أو تعديل البيانات التي قد تتسبب في وجود التكرارات.

كود SQL على خلفية سوداء.
صور كيفيلسيم بينار / جيتي

لماذا استخدام قيود UNIQUE

يفرض كل من القيد UNIQUE والمفتاح الأساسي التفرد ، ولكن هناك أوقات يكون فيها القيد UNIQUE هو الخيار الأفضل.

  • استخدم قيد UNIQUE لتحديد عدة قيود على جدول. يمكنك فقط إرفاق مفتاح أساسي واحد بالجدول.
  • استخدم قيد فريد عندما يسمح العمود بقيم خالية. يمكن فقط إرفاق قيود المفتاح الأساسي بالأعمدة التي لا تسمح بقيم فارغة.

إنشاء قيد فريد

أسهل طريقة لإنشاء قيد فريد في Transact-SQL هي الاتصال بمحرك قاعدة بيانات في Object Explorer في SQL Management Studio ثم النقر فوق استعلام جديد.

استخدم الاستعلام التالي ، مع تعديل المصطلحات حسب الضرورة ، لإنشاء جدول جديد وإضافة قيد على عمود:

instagram viewer
استخدام AdventureWorks2012 ؛ 
اذهب
إنشاء إنتاج الجدول. TransactionHistoryArchive4
(
رقم تعريف المعاملة ليس فارغًا ،
CONSTRAINT AK_TransactionID فريد من نوعه (معرّف المعاملة)
);
اذهب.

قم بتنفيذ الاستعلام.

وبالمثل ، لإنشاء قيد فريد في جدول موجود ، قم بتنفيذ استعلام T-SQL التالي:

استخدام AdventureWorks2012 ؛ 
اذهب
تغيير شخص الجدول. كلمه السر
إضافة CONSTRAINT AK_Password UNIQUE (PasswordHash ، PasswordSalt) ؛
اذهب.

قيود فريدة مقابل. فهارس فريدة

كان هناك بعض الالتباس حول الاختلاف بين قيد فريد وفهرس فريد. بينما يمكنك استخدام أوامر T-SQL مختلفة لإنشائها (ALTER TABLE و ADD CONSTRAINT للقيود وإنشاء UNIQUE INDEX للفهارس) ، فإنهما لهما نفس التأثير ، في معظم الأحيان. في الواقع ، عندما تنشئ قيدًا فريدًا ، فإنه في الواقع ينشئ فهرسًا فريدًا في الجدول. لاحظ عدة اختلافات ، على الرغم من:

  • عندما تقوم بإنشاء فهرس ، يمكنك إضافة خيارات إضافية إلى أمر الإنشاء.
  • يمكن استخدام العمود الخاضع لقيد UNIQUE كملف مفتاح غريب.
instagram story viewer