Was ist der Zweck von system table master..spt_values und was bedeuten seine Werte?
Was ist der Zweck der Systemtabelle master..spt_values?
Warum war es vorgesehen, und wie sollte man es verwenden?
Was sind die Bedeutungen seiner Art, niedrig, hohe Werte?
Update:
Google-Suche gibt Tausende von "seiner Nutzung", zum Beispiel:
- split-Spalte mithilfe von master..spt_values
- es enthält die zahlen von 0 bis 2047. Es ist sehr nützlich.zum Beispiel, wenn Sie brauchen, um füllen Sie eine Tabelle mit 100 Nummern aus diesem Bereich
- zur Erstellung von Indizes
- erstellen von virtuellen Kalender
- erste Beschreibungen der verwendeten Objekte in etwas nicht-intuitive und komplizierte Art und Weise
Auflisten aller Indizes in einer SQL Server-Datenbank (Giuseppe Dimauro, devx.com) - "SQL Server 2005-Skript zur Anzeige von disk space usage"
-
"Es ist nicht der Rede Wert. Dieser Tisch ist ein design-Albtraum einer "super" lookup-Tabelle"
Manche Beiträge warnen vor seinem Gebrauch, da es entfernt werden kann in zukünftigen Versionen von SQL Server gibt es aber bereits-code von Skripts mit es zu veranschaulichen neuen features des neuen SQL Server 11 (Denali):
- Mit OFFSET N ROWS FETCH NEXT N ZEILEN, die NUR In SQL Server Denali für einfaches paging
InformationsquelleAutor der Frage Gennady Vanin Геннадий Ванин | 2010-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
spt_values
Tabelle nicht erwähnt wird in der SQL Server-Dokumentation, sondern es geht zurück auf die Sybase-Tage und es gibt einige extrem geringe Dokumentation in den Sybase-online-docs, die können zusammengefasst werden in diesem Kommentar:In anderen Worten, Lesen Sie den code und arbeiten Sie es selbst heraus.
Wenn Sie stecken um das system gespeicherte Prozeduren, und überprüfen Sie die Daten der Tabelle selbst, es ist ziemlich klar, dass die Tabelle verwendet wird, um zu übersetzen-codes in lesbare strings (unter anderem). Oder wie der Sybase-Dokumentation oben verlinkten es ausdrückt, "zu konvertieren interne system -, Werte [...] in Menschen-lesbaren format"
Der Tisch ist auch manchmal verwendet in code snippets in den MSDN-blogs - aber nie in der formalen Dokumentation - in der Regel als eine bequeme Quelle von einer Liste von zahlen. Aber wie bereits anderswo, erstellen Sie Ihre eigene Quelle der zahlen ist eine sicherere und zuverlässigere Lösung als die Verwendung eines undokumentierten system-Tabelle. Es gibt sogar eine Connect-Anforderung, um eine 'richtige', dokumentiert Anzahl Tabelle im SQL-Server selbst.
Ohnehin, die Tabelle ist völlig Undokumentiert, so gibt es keine signifikanten Wert zu wissen nichts über Sie, zumindest aus praktischer Sicht: die nächsten servicepack oder upgrade vielleicht ändern Sie es vollständig aus. Intellektuelle Neugier ist etwas anderes, natürlich 🙂
InformationsquelleAutor der Antwort Pondlife
Meist beantwortet noch eine Frage.
Was sind die Bedeutungen seiner Art, niedrig, hohe Werte?
Meisten Arten (dh. jede spezifische lookup-Tabelle, wenn Sie waren getrennt) erfordern entweder der Name oder die Nummer. Einige Arten erfordern Low-und High-Spalten als gut. In Sybase haben wir eine ErrorNumber Spalte, so dass die sproc kann RAISERROR-das ist nicht hart-codiert werden können (ändert mit Versionen, etc).
Ist es nicht "kryptisch", es sei denn, eine aufgezählte Liste ist "kryptisch"; es ist nur eine lookup-Tabelle (alle von Ihnen, differenziert nach der Spalte Typ).
InformationsquelleAutor der Antwort PerformanceDBA