Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

सशर्त अद्वितीय बाधा

निहारना, फ़िल्टर किया गया index. प्रलेखन से (जोर मेरा):

<ब्लॉकक्वॉट>

फ़िल्टर्ड इंडेक्स एक अनुकूलित गैर-क्लस्टर इंडेक्स है जो विशेष रूप से उन प्रश्नों को कवर करने के लिए उपयुक्त है जो डेटा के एक अच्छी तरह से परिभाषित सबसेट से चुनते हैं। यह तालिका में पंक्तियों के एक हिस्से को अनुक्रमित करने के लिए विधेय फ़िल्टर का उपयोग करता है। एक अच्छी तरह से डिज़ाइन किया गया फ़िल्टर्ड इंडेक्स क्वेरी प्रदर्शन में सुधार कर सकता है और साथ ही फुल-टेबल इंडेक्स की तुलना में इंडेक्स रखरखाव और भंडारण लागत को कम कर सकता है।

और यहां एक फ़िल्टर विधेय के साथ एक अद्वितीय अनुक्रमणिका को संयोजित करने का एक उदाहरण दिया गया है:

create unique index MyIndex
on MyTable(ID)
where RecordStatus = 1;

यह अनिवार्य रूप से ID . की विशिष्टता को लागू करता है जब RecordStatus है 1

उस अनुक्रमणिका के निर्माण के बाद, एक अद्वितीयता उल्लंघन एक त्रुटि उत्पन्न करेगा:

<ब्लॉकक्वॉट>

Msg 2601, Level 14, State 1, Line 13
ऑब्जेक्ट 'dbo.MyTable' में अद्वितीय इंडेक्स 'MyIndex' के साथ डुप्लीकेट की रो को इन्सर्ट नहीं किया जा सकता। डुप्लीकेट कुंजी मान (9999) है।

<उप>नोट:फ़िल्टर किए गए इंडेक्स को SQL Server 2008 में पेश किया गया था। SQL सर्वर के पुराने संस्करणों के लिए, कृपया यह उत्तर देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2016 RTM में डेटाबेस को स्ट्रेच करें

  2. एक बच्चे के लिए सभी माता-पिता प्राप्त करें

  3. प्राथमिक कुंजी आईडी के साथ क्या होता है जब यह सीमा से अधिक हो जाता है?

  4. SQL सर्वर नवीनतम संस्करण, संस्करण और SQL सर्वर इतिहास

  5. SQL सर्वर लॉग शिपिंग और डिजास्टर रिकवरी इंस्टाल और कॉन्फ़िगरेशन -4