Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quel est le but de la table système master..spt_values ​​et quelle est la signification de ses valeurs ?

Les spt_values table n'est pas mentionnée dans la documentation de SQL Server, mais elle remonte à l'époque de Sybase et il existe une documentation extrêmement minimale dans la documentation en ligne de Sybase qui peut être résumée dans ce commentaire :

Pour voir comment il est utilisé, exécutez sp_helptext et regardez le texte de l'une des procédures système qui y fait référence.

En d'autres termes, lisez le code et calculez-le par vous-même.

Si vous parcourez les procédures stockées du système et examinez les données de la table elle-même, il est assez clair que la table est utilisée pour traduire les codes en chaînes lisibles (entre autres choses). Ou comme le dit la documentation Sybase liée ci-dessus, "pour convertir les valeurs système internes [...] en format lisible par l'homme"

Le tableau est également parfois utilisé dans les extraits de code des blogs MSDN - mais jamais dans la documentation formelle - généralement comme source pratique d'une liste de nombres. Mais comme discuté ailleurs, la création de votre propre source de nombres est une solution plus sûre et plus fiable que l'utilisation d'une table système non documentée. Il y a même une requête Connect pour fournir une table de nombres "appropriée" et documentée dans SQL Server lui-même.

Quoi qu'il en soit, la table est entièrement non documentée, il n'y a donc aucune valeur significative à en savoir quoi que ce soit, du moins d'un point de vue pratique :le prochain servicepack ou la prochaine mise à niveau pourrait la changer complètement. La curiosité intellectuelle est autre chose, bien sûr :-)