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

डिफ़ॉल्ट के रूप में चिह्नित केवल एक रिकॉर्ड के लिए बाधा

एक अद्वितीय फ़िल्टर किए गए अनुक्रमणिका का उपयोग करें

SQL Server 2008 या उच्चतर पर आप बस एक अद्वितीय फ़िल्टर किए गए अनुक्रमणिका का उपयोग कर सकते हैं

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
    ON TableName(FormID)
    WHERE isDefault = 1

टेबल कहां है

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)

उदाहरण के लिए यदि आप एक ही FormID . के साथ कई पंक्तियाँ सम्मिलित करने का प्रयास करते हैं और isDefault 1 पर सेट करने पर आपको यह त्रुटि होगी:

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

अद्वितीय अनुक्रमणिका 'IX_TableName_FormID_isDefault' के साथ ऑब्जेक्ट 'dbo.TableName' में डुप्लिकेट कुंजी पंक्ति सम्मिलित नहीं कर सकता। डुप्लीकेट कुंजी मान (1) है।

स्रोत:http://technet.microsoft.com/en-us/library/cc280372.aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अंकगणित अतिप्रवाह त्रुटि अभिव्यक्ति को डेटा प्रकार डेटाटाइम में परिवर्तित करना। (दिनांक समय प्रदर्शित करते समय ..)

  2. SQL सर्वर के अंदर नियमित अभिव्यक्ति

  3. महीने और साल के हिसाब से SQL ग्रुपिंग

  4. पहली बार इसे देखने वालों के लिए MS SQL सर्वर का विश्लेषण

  5. अल्पविराम से अलग की गई स्ट्रिंग को अलग-अलग पंक्तियों में बदलना