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

SQL सर्वर 2005 में डेटाटाइप वर्चर (4096) वाले कॉलम पर 900 कुंजी लंबाई सीमा अनुक्रमणिका को कैसे हल करें?

आप नहीं कर सकते - जैसा कि त्रुटि संदेश पहले से ही स्पष्ट रूप से बताता है, कोई भी अनुक्रमणिका प्रविष्टि 900 बाइट से अधिक लंबी नहीं हो सकती है।

आप एक varchar(4096) फ़ील्ड-अवधि को अनुक्रमित नहीं कर सकते। इसके आसपास कोई रास्ता नहीं - यह एक कठिन SQL सर्वर सीमा है - इसे कॉन्फ़िगर करने, इसे बदलने, इसे बड़ा करने का कोई तरीका नहीं है। देखें किताबें ऑनलाइन - अनुक्रमणिका कुंजियों का अधिकतम आकार पुष्टि के लिए।

आपको या तो अपने "मान" कॉलम को 900 बाइट्स से कम तक सीमित करना होगा, या उस डेटा को स्टोर करने का दूसरा तरीका ढूंढना होगा - या इसे इंडेक्स में शामिल न करें। यदि आप चाहते हैं कि आपके "मान" फ़ील्ड में केवल एक कवरिंग इंडेक्स हो (सूचकांक प्रविष्टि से प्रश्नों को संतुष्ट करने में सक्षम होने के लिए), तो आप फ़ील्ड को शामिल कॉलम के रूप में स्थानांतरित कर सकते हैं अनुक्रमणिका में - वे 900 बाइट सीमा के अंतर्गत नहीं आते हैं।

CREATE NONCLUSTERED INDEX idx_ncl_2 
  ON BFPRODATTRASSOCIATION(attributeid) 
  INCLUDE (productid, value)

वह सूचकांक काम करना चाहिए।



  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. मैं SQL सर्वर 2005 तालिका में NTEXT फ़ील्ड में यूनिकोड/गैर-ASCII वर्ण कैसे ढूंढ सकता हूं?

  3. SQL सर्वर 2008 - सरल INSERT ट्रिगर लिखने में मदद करें

  4. एसक्यूएल सर्वर में डेटाटाइम में शून्य सम्मिलित नहीं कर सकता

  5. NOT IN क्लॉज के अंदर NULL मान