web-dev-qa-db-fra.com

À quoi sert la table système master..spt_values ​​et quelle est la signification de ses valeurs?

À quoi sert la table système master..spt_values?
Pourquoi a-t-il été fourni et comment l'utiliser?

Quelles sont les significations de son type, valeurs faibles, élevées?

Mise à jour:
La recherche Google donne des milliers de "ses utilisations", par exemple:

Le spt_values La table n'est pas mentionnée dans la documentation de SQL Server mais elle remonte aux jours Sybase et il y a documentation extrêmement minimale dans les documents en ligne Sybase qui peuvent être résumés dans ce commentaire:

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

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

Si vous fouillez 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 des codes en chaînes lisibles (entre autres). Ou, comme le dit la documentation Sybase liée ci-dessus, "pour convertir les valeurs système internes [...] dans un format lisible par l'homme"

Le tableau est également parfois utilisé dans les extraits de code dans les blogs MSDN - mais jamais dans la documentation formelle - généralement comme une 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 ne demande de connexion pour fournir une table de nombres documentée "correcte" 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 mise à niveau pourrait la changer complètement. La curiosité intellectuelle est autre chose, bien sûr :-)

50
Pondlife

Répond principalement à autre question .

Quelles sont les significations de son type, valeurs basses, hautes?

La plupart des types (c'est-à-dire chaque table de recherche spécifique, s'ils étaient séparés) nécessitent un nom ou un numéro. Certains types nécessitent également des colonnes Low et High. Dans Sybase, nous avons une colonne ErrorNumber, donc le sproc peut RAISERROR qui n'est pas codé en dur (peut être des changements avec les versions, etc.).

Ce n'est pas "cryptique" à moins qu'une liste énumérée ne soit "cryptique" pour vous; c'est juste une table de recherche (toutes, différenciées par la colonne Type).

4
PerformanceDBA

Une utilisation, certainement pas son utilisation principale, est de générer une série de nombres:

--Generate a series from 1 to 100
SELECT
    TOP 100
    ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS RowNum
FROM master.dbo.spt_values ORDER BY RowNum
0
Nicholas Humphrey