سؤال

كيف أقوم بإنشاء قيد فريد على جدول موجود في SQL Server 2005؟

أنا أبحث عن كل من TSQL وكيفية القيام بذلك في مخطط قاعدة البيانات.

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

المحلول

أمر SQL هو:

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

انظر بناء الجملة الكامل هنا.

إذا كنت تريد القيام بذلك من مخطط قاعدة البيانات:

  • انقر بزر الماوس الأيمن على الجدول وحدد "الفهارس/المفاتيح"
  • انقر فوق الزر "إضافة" لإضافة فهرس جديد
  • أدخل المعلومات الضرورية في الخصائص على الجانب الأيمن:
    • الأعمدة التي تريدها (انقر فوق زر علامة الحذف لتحديدها)
    • المجموعة فريدة من نوعها لـ نعم
    • أعطها اسما مناسبا

نصائح أخرى

في SQL Server Management Studio Express:

  • انقر بزر الماوس الأيمن فوق الجدول، اختر يُعدِّل أو التصميم (للإصدارات الأحدث)
  • انقر بزر الماوس الأيمن على الحقل، اختر الفهارس/المفاتيح...
  • انقر يضيف
  • ل أعمدة, ، حدد اسم الحقل تريد أن تكون فريدة من نوعها.
  • ل يكتب, ، يختار مفتاح فريد.
  • انقر يغلق, يحفظ الطاولة.
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])

تحذير:يمكن أن يوجد صف فارغ واحد فقط في العمود الذي قمت بتعيينه ليكون فريدًا.

يمكنك القيام بذلك باستخدام فهرس تمت تصفيته في SQL 2008:

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

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

ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]

لقد وجدت أيضًا أنه يمكنك القيام بذلك عبر مخططات قاعدة البيانات.

من خلال النقر بزر الماوس الأيمن على الجدول وتحديد الفهارس/المفاتيح...

انقر فوق الزر "إضافة"، وقم بتغيير الأعمدة إلى الأعمدة التي ترغب في جعلها فريدة.

التغيير فريد من نوعه إلى نعم.

انقر فوق إغلاق واحفظ الرسم التخطيطي، وسيضيفه إلى الجدول.

كنت تبحث عن شيء مثل ما يلي

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

مستندات MSDN

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

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

للسماح بتسمية قيد فريد للاستعلام أعلاه

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

الاستعلام المدعوم بواسطة MySQL / SQL Server / Oracle / MS Access.

في مخطط استوديو الإدارة، اختر الجدول، وانقر بزر الماوس الأيمن لإضافة عمود جديد إذا رغبت في ذلك، وانقر بزر الماوس الأيمن على العمود واختر "التحقق من القيود"، حيث يمكنك إضافة عمود.

في بعض الحالات، قد يكون من المرغوب فيه التأكد من عدم وجود المفتاح الفريد قبل إنشائه.في مثل هذه الحالات، قد يساعد البرنامج النصي أدناه:

IF Exists(SELECT * FROM sys.indexes WHERE name Like '<index_name>')
    ALTER TABLE dbo.<target_table_name> DROP CONSTRAINT <index_name> 
GO

ALTER TABLE dbo.<target_table_name> ADD CONSTRAINT <index_name> UNIQUE NONCLUSTERED (<col_1>, <col_2>, ..., <col_n>) 
GO
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top