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

टी-एसक्यूएल घोषित टेबल वैरिएबल के दो कॉलम पर कैसे सेट और इंडेक्स करें?

आप कर सकते हैं निम्नानुसार एक गैर-संकुल अनुक्रमणिका बनाएं।

DECLARE @t TABLE (
  PK   INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Col1 INT,
  Col2 INT,
  UNIQUE (Col1, Col2, PK)) 

अगर इरादा यह है कि Col1, Col2 अपने आप में अद्वितीय हैं तो PK remove को हटा दें कॉलम सूची से।

हालांकि यह अंकित मूल्य पर दिखाई देता है जैसे कि इसने (PK .) में एक अतिरिक्त कॉलम जोड़ा है ) अनुक्रमणिका संरचना केवल Col1, Col2 पर एक गैर-अद्वितीय अनुक्रमणिका बनाने के समान होगी एक #temp . पर टेबल।

CREATE TABLE #T  (
  PK   INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
  Col1 INT,
  Col2 INT) 

/*PK added in to end of key anyway*/  
CREATE NONCLUSTERED INDEX ix ON #T(Col1, Col2)

एक गैर-अद्वितीय गैर-संकुल सूचकांक के लिए SQL सर्वर हमेशा CI कुंजी को NCI कुंजी में वैसे भी जोड़ता है। यह बस इसे स्पष्ट रूप से दिखाता है।

देखें कलेन डेलाने अधिक के बारे में गैर-संकुल अनुक्रमणिका कुंजियाँ



  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. एसक्यूएल सर्वर 2008 में तारीख से महीने की सप्ताह संख्या कैसे प्राप्त करें?

  3. उन तालिकाओं में पंक्तियों को कैसे हटाएं जिनमें अन्य तालिकाओं के लिए विदेशी कुंजियाँ हों

  4. एक तालिका से चयन करना जहां नाम एक चर के रूप में पारित किया जाता है

  5. SQL में सभी विशेष वर्ण ढूँढें और बदलें