Dies basiert auf dem Missverständnis, dass XML-Indizes derzeit der einzige Typ sind, der jemals ein ID-Schema haben könnte, das> = 256000 ist (zumindest basierend auf ihrer Beobachtung; dieses Schema ist nicht AFAIK dokumentiert, also nicht einmal sicher, ob es beabsichtigt ist). Wahrscheinlich in aktuellen Versionen in Ordnung, aber wer weiß, welche Art von Index als nächstes hinzugefügt wird und wo das ID-Schema beginnt? Wenn Sie XML-Indizes ausschließen möchten, schließen Sie jetzt auch etwas anderes aus. Räumliche Indizes scheinen beispielsweise bei id = 384000 zu beginnen. Wenn die obige Abfrage räumliche Indizes, aber keine XML-Indizes enthalten soll, werden sie überrascht sein.
Ein viel besserer Filter wäre:
WHERE type <> 3;
... oder noch besser, da es sich selbst dokumentiert ...
WHERE type_desc <> N'XML';
Und jetzt, wenn Sie beispielsweise auch räumliche Indizes ausschließen möchten, ändert sich Ihre Abfrage in ...
WHERE type_desc NOT IN (N'XML', N'SPATIAL');
... anstatt herauszufinden, welchen numerischen Bereich die ID-Werte für räumliche Indizes belegen könnten (oder nicht). Viel Glück damit.
Diese sind in sys.indexes (Transact-SQL) ziemlich klar dokumentiert . Ich sehe keinen Hinweis auf diese magische Zahl und ich empfehle Ihnen dringend, Ihren Autor des Tutorials hier zu verweisen, damit er sehen kann, dass diese magische Zahl nicht etwas ist, auf das er sich verlassen sollte (es macht nichts aus, anderen beizubringen, sich darauf zu verlassen).
sys.sysindexkeys