আমি কীভাবে এসকিউএল সার্ভার 2005 এ বিদ্যমান টেবিলে একটি অনন্য সীমাবদ্ধতা তৈরি করব?
আমি টিএসকিউএল এবং এটি কীভাবে ডেটাবেস ডায়াগ্রামে করব তা সন্ধান করছি।
আমি কীভাবে এসকিউএল সার্ভার 2005 এ বিদ্যমান টেবিলে একটি অনন্য সীমাবদ্ধতা তৈরি করব?
আমি টিএসকিউএল এবং এটি কীভাবে ডেটাবেস ডায়াগ্রামে করব তা সন্ধান করছি।
উত্তর:
এসকিউএল কমান্ডটি হ'ল:
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
সম্পূর্ণ সিনট্যাক্সটি এখানে দেখুন ।
আপনি যদি এটি একটি ডেটাবেস ডায়াগ্রাম থেকে করতে চান:
এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এক্সপ্রেসে:
সতর্কতা: আপনি যে কলামটি অনন্য সেট করেছেন তাতে কেবলমাত্র একটি নাল সারি থাকতে পারে।
আপনি এসকিউএল 2008 এ একটি ফিল্টার সূচক দিয়ে এটি করতে পারেন:
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
দেখুন ক্ষেত্রের মানটি অবশ্যই অনন্য হতে হবে যদি না এটি উত্তরগুলির একটি ব্যাপ্তির জন্য 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
টেবিলটি ইতিমধ্যে তৈরি হয়ে গেলে এক বা একাধিক কলামে অনন্য বাধা তৈরি করতে, নিম্নলিখিত এসকিউএল ব্যবহার করুন:
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
?
কিছু পরিস্থিতিতে, ইউনিক কী তৈরি করার আগে এটি বিদ্যমান না তা নিশ্চিত করে নেওয়া বাঞ্ছনীয়। এই ধরনের ক্ষেত্রে, নীচের স্ক্রিপ্টটি সাহায্য করতে পারে:
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