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

SQL सर्वर 2008 पर अद्वितीय कुंजी बनाम अद्वितीय अनुक्रमणिका

दृश्यों के पीछे एक अद्वितीय बाधा एक अद्वितीय अनुक्रमणिका के रूप में लागू की जाती है, इसलिए इससे कोई फर्क नहीं पड़ता कि आप इसे कैसे निर्दिष्ट करते हैं। मैं इसे केवल इस प्रकार लागू करता हूं:

ALTER TABLE dbo.foo ADD CONSTRAINT UQ_bar UNIQUE(bar);

कुछ लोग इसके बजाय एक अद्वितीय अनुक्रमणिका बनाते हैं, उदा.

CREATE UNIQUE INDEX IX_UQ_Bar ON dbo.foo(bar);

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

मुझे लगता है कि पिछले Sybase कार्यक्षमता के साथ-साथ एएनएसआई मानक का पालन करने के लिए कई विकल्प हैं (भले ही अद्वितीय बाधाएं मानक 100% का पालन न करें, क्योंकि वे केवल एक पूर्ण मान की अनुमति देते हैं - एक अद्वितीय अनुक्रमणिका, पर दूसरी ओर, WHERE . जोड़कर इस पर काम कर सकते हैं क्लॉज (WHERE col IS NOT NULL ) SQL सर्वर 2008 और उच्चतर पर)।



  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 सर्वर में सिमेंटिक सर्च का उपयोग कैसे करें

  2. ओरेकल:एसक्यूएल सर्वर के लिए प्रोफाइलर जैसे प्रश्नों का पता लगाने के लिए कोई उपकरण है?

  3. SQL सर्वर में TRY_CAST () कैसे काम करता है

  4. डेटाबेस में पासवर्ड को सुरक्षित तरीके से कैसे स्टोर करें?

  5. SQL सर्वर 2008 की .mdf और .ldf फ़ाइलों से डेटाबेस को पुनर्स्थापित करना