/ / sql सर्वर में अद्वितीय अवरोध कैसे बनाएँ? - sql, sql-server

एसक्यूएल सर्वर में अद्वितीय बाधाओं को कैसे बनाया जाए? - एसक्यूएल, एसक्यूएल-सर्वर

मैं एक अद्वितीय अवरोध बनाना चाहूंगा जो यह निर्दिष्ट करता है कि आईडी और ब्रीफिड के लिए एक विशिष्ट नाम होना चाहिए।

जैसे। बाधा के कारण निम्नलिखित की अनुमति नहीं होगी।

ID   BriefID   Name
12    32        first
12    32        first

तालिका संरचना इस प्रकार है।

 PK ID                   int
Name                 nvarchar(50)
FK BriefID              int
StatusID             int
StartDate            datetimeoffset(7)
EndDate              datetime
FrequencyID          int
MaxArticleDisplay    int
LastDateAlertSent    datetime

उत्तर:

जवाब के लिए 3 № 1

कैसा रहेगा

ALTER TABLE dbo.YourTable
ADD CONSTRAINT UC_ID_BriefID UNIQUE(ID, BriefID, Name)

इसके साथ, आप अपने प्रश्न में उल्लिखित इन दो पंक्तियों को सम्मिलित नहीं कर सकते। दूसरी पंक्ति डालने की कोशिश करने से अड़चन पैदा होगी और वह सफल नहीं होगी।


उत्तर № 2 के लिए 1

आप इसे एक अद्वितीय सूचकांक के साथ प्राप्त कर सकते हैं:

CREATE UNIQUE NONCLUSTERED INDEX [UIX_TABLENAME_001] ON [TABLENAME]
(
ID,
BriefID,
Name
)