Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Welchen Zweck hat die Systemtabelle master..spt_values ​​und welche Bedeutung haben ihre Werte?

Die spt_values Die Tabelle wird in der SQL Server-Dokumentation nicht erwähnt, aber sie geht auf die Sybase-Tage zurück, und es gibt einige äußerst minimale Dokumentationen in den Online-Dokumentationen von Sybase, die in diesem Kommentar zusammengefasst werden können:

Um zu sehen, wie es verwendet wird, führen Sie sp_helptext aus und sehen Sie sich den Text für eine der Systemprozeduren an, die darauf verweist.

Mit anderen Worten, lesen Sie den Code und arbeiten Sie ihn selbst aus.

Wenn Sie in den gespeicherten Systemprozeduren herumstöbern und die Tabellendaten selbst untersuchen, ist es ziemlich klar, dass die Tabelle verwendet wird, um Codes (unter anderem) in lesbare Zeichenfolgen zu übersetzen. Oder wie die oben verlinkte Sybase-Dokumentation es ausdrückt, "interne Systemwerte [...] in ein für Menschen lesbares Format umzuwandeln"

Die Tabelle wird manchmal auch in Codeschnipseln in MSDN-Blogs verwendet – aber niemals in formellen Dokumentationen – normalerweise als praktische Quelle für eine Liste von Zahlen. Aber wie an anderer Stelle besprochen, ist das Erstellen einer eigenen Nummernquelle eine sicherere und zuverlässigere Lösung als die Verwendung einer undokumentierten Systemtabelle. Es gibt sogar eine Connect-Anforderung, um eine „richtige“, dokumentierte Zahlentabelle in SQL Server selbst bereitzustellen.

Wie auch immer, die Tabelle ist völlig undokumentiert, daher hat es keinen nennenswerten Wert, etwas darüber zu wissen, zumindest aus praktischer Sicht:Das nächste Servicepack oder Upgrade könnte sie vollständig ändern. Intellektuelle Neugier ist natürlich etwas anderes :-)