यह इस गलत धारणा पर आधारित है कि एक्सएमएल इंडेक्स वर्तमान में एकमात्र प्रकार है जिसमें कभी भी एक आईडी स्कीम हो सकती है जो है = = 256000 (कम से कम उनके अवलोकन के आधार पर; यह योजना AFAIK को प्रलेखित नहीं है, इसलिए यह सुनिश्चित नहीं है कि यह जानबूझकर भी है)। वर्तमान संस्करणों में संभवतः ठीक है, लेकिन कौन जानता है कि किस प्रकार का सूचकांक अगले में जोड़ा जाएगा और इसकी आईडी योजना कहां शुरू होगी? यदि आप XML इंडेक्स को बाहर करना चाहते हैं, तो आप अब कुछ और को भी छोड़ रहे हैं। उदाहरण के लिए, स्थानिक सूचकांक, आईडी = 384000 पर शुरू होता है। यदि ऊपर दिए गए क्वेरी में स्थानिक सूचकांक शामिल हैं लेकिन XML इंडेक्स नहीं है, तो वे आश्चर्यचकित होने वाले हैं।
एक बेहतर फिल्टर होगा:
WHERE type <> 3;
... या इससे भी बेहतर, क्योंकि यह स्व-दस्तावेज है ...
WHERE type_desc <> N'XML';
और अब जब आप स्थानिक इंडेक्स भी कहना चाहते हैं, तो आपकी क्वेरी बदल जाती है ...
WHERE type_desc NOT IN (N'XML', N'SPATIAL');
... यह जानने के बजाय कि संख्यात्मक अनुक्रमिक के लिए आईडी मान किस सीमा तक व्याप्त हो सकते हैं (या नहीं)। उसके साथ अच्छा भाग्य।
ये स्पष्ट रूप से sys.indexes (Transact-SQL) में दर्ज़ हैं । मुझे इस जादू की संख्या का कोई संदर्भ नहीं दिखता है और मैं आपको अपने ट्यूटोरियल लेखक को यहाँ इंगित करने की अत्यधिक सलाह देता हूँ ताकि वे देख सकें कि यह जादू संख्या कुछ ऐसी नहीं है, जिस पर उन्हें भरोसा करना चाहिए (दूसरों पर भरोसा करने के लिए कभी भी मन नहीं लगाना चाहिए)।
sys.sysindexkeys