এসকিউএল সার্ভার 2005 কীভাবে একটি অনন্য বাধা তৈরি করে?


181

আমি কীভাবে এসকিউএল সার্ভার 2005 এ বিদ্যমান টেবিলে একটি অনন্য সীমাবদ্ধতা তৈরি করব?

আমি টিএসকিউএল এবং এটি কীভাবে ডেটাবেস ডায়াগ্রামে করব তা সন্ধান করছি।

উত্তর:


272

এসকিউএল কমান্ডটি হ'ল:

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

সম্পূর্ণ সিনট্যাক্সটি এখানে দেখুন

আপনি যদি এটি একটি ডেটাবেস ডায়াগ্রাম থেকে করতে চান:

  • টেবিলে ডান ক্লিক করুন এবং 'সূচি / কী' নির্বাচন করুন
  • একটি নতুন সূচক যুক্ত করতে অ্যাড বোতামটি ক্লিক করুন
  • ডান হাতের প্রোপার্টিগুলিতে প্রয়োজনীয় তথ্য লিখুন:
    • আপনি যে কলামগুলি চান তা (নির্বাচন করার জন্য উপবৃত্ত বাটনে ক্লিক করুন)
    • হ্যাঁ অনন্যরূপে সেট করুন
    • এটি একটি উপযুক্ত নাম দিন

1
এটি কাজ করে ... তবে ... কেন প্রতিবন্ধকতাগুলি আইএনডেক্স ফোল্ডারের অধীনে CONSTRAINTS ফোল্ডারে প্রদর্শিত হচ্ছে। এটি অন্য আইকন দিয়ে দেখানো হয়েছে, তবে যাইহোক এটি সীমাবদ্ধতার ফোল্ডারে থাকা উচিত।
ফার্নান্দো টরেস

84

এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এক্সপ্রেসে:

  • ডান-ক্লিক সারণী, পরিবর্তন বা নকশা (পরবর্তী সংস্করণগুলির জন্য) চয়ন করুন
  • রাইট-ক্লিকের ক্ষেত্র, সূচি / কীগুলি চয়ন করুন ...
  • অ্যাড ক্লিক করুন
  • জন্য কলাম নির্বাচন ক্ষেত্র নাম আপনি অনন্য হতে চাই।
  • জন্য প্রকার চয়ন স্বতন্ত্র কি
  • বন্ধ ক্লিক করুন , টেবিল সংরক্ষণ করুন।


15

সতর্কতা: আপনি যে কলামটি অনন্য সেট করেছেন তাতে কেবলমাত্র একটি নাল সারি থাকতে পারে।

আপনি এসকিউএল 2008 এ একটি ফিল্টার সূচক দিয়ে এটি করতে পারেন:

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

দেখুন ক্ষেত্রের মানটি অবশ্যই অনন্য হতে হবে যদি না এটি উত্তরগুলির একটি ব্যাপ্তির জন্য NULL হয়


আপনি কিভাবে এসকিএল সার্ভার 2005 এ এটি করেন?
ম্যাক্সরুনার

2
এটা তোলে SQL সার্ভার 2005 সালে সাধনযোগ্য নয় আমি দৃঢ়ভাবে আরো একটি আপ-টু-ডেট RDBMS আপগ্রেড সুপারিশ করবে - এটা হতে হবে আনুষ্ঠানিকভাবে অসমর্থিত 2016. 12 এপ্রিল হিসাবে
reedstonefood


10

ডেটাবেস ডায়াগ্রামের মাধ্যমে আপনি এটি করতে পারেন তাও আমি পেয়েছি।

সারণীতে ডান ক্লিক করে এবং সূচি / কীগুলি নির্বাচন করে ...

'যোগ করুন' বোতামটি ক্লিক করুন, এবং কলামগুলিতে অনুলিপি তৈরির কলামটি পরিবর্তন করুন।

পরিবর্তন হ্যাঁ অনন্য।

ডায়াগ্রামটি বন্ধ করুন এবং সংরক্ষণ করুন, এবং এটি টেবিলে যুক্ত করবে।



6

টেবিলটি ইতিমধ্যে তৈরি হয়ে গেলে এক বা একাধিক কলামে অনন্য বাধা তৈরি করতে, নিম্নলিখিত এসকিউএল ব্যবহার করুন:

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

উপরের প্রশ্নের জন্য একটি অনন্য বাধার নামকরণের অনুমতি দেওয়ার জন্য

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

কোয়ালিটি মাইএসকিউএল / এসকিউএল সার্ভার / ওরাকল / এমএস অ্যাক্সেস দ্বারা সমর্থিত।


UNIQUE NONCLUSTERED এবং বিকল্পগুলি PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ?
কিকিনেট

5

ম্যানেজমেন্ট স্টুডিও ডায়াগ্রামে টেবিলটি নির্বাচন করুন, নতুন কলাম যুক্ত করতে ডান ক্লিক করুন যদি ইচ্ছা হয়, কলামটিতে ডান ক্লিক করুন এবং "সীমাবদ্ধতাগুলি পরীক্ষা করুন" নির্বাচন করুন, সেখানে আপনি একটি যুক্ত করতে পারেন।


0

কিছু পরিস্থিতিতে, ইউনিক কী তৈরি করার আগে এটি বিদ্যমান না তা নিশ্চিত করে নেওয়া বাঞ্ছনীয়। এই ধরনের ক্ষেত্রে, নীচের স্ক্রিপ্টটি সাহায্য করতে পারে:

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.