Qual è lo scopo del master di tabella di sistema … .spt_values ​​e quali sono i significati dei suoi valori?

Qual è lo scopo del master di tabella di sistema..spt_values?
Perché è stato fornito e come si dovrebbe usarlo?

Quali sono i significati del suo tipo, valori bassi e alti?

Aggiornare:
La ricerca di Google offre migliaia di “suoi usi”, ad esempio:

  • per dividere la colonna usando master..spt_values
  • contiene numeri da 0 a 2047. È molto utile, per esempio se è necessario popolare una tabella con 100 numeri da questo intervallo
  • per build indici
  • creare calendari virtuali
  • ottenere descrizioni di oggetti usati in un modo un po ‘non intuitivo e complicato
    Enumerazione di tutti gli indici in un database SQL Server (Giuseppe Dimauro, devx.com)
  • “Script di SQL Server 2005 per visualizzare l’utilizzo dello spazio su disco”
  • “Non ne vale la pena parlare. Questo tavolo è un incubo di design di un” super “tavolo di ricerca”

    Alcuni post mettono in guardia dal suo utilizzo in quanto possono essere rimossi nelle future versioni di SQL Server, ma esistono già degli script di codice che lo utilizzano per illustrare le nuove funzionalità del nuovo SQL Server 11 (Denali):

    • Utilizzare OFFSET N ROWS FETCH NEXT N ROWS SOLO In SQL Server Denali per facilitare il paging

    La tabella spt_values non è menzionata nella documentazione di SQL Server ma torna ai giorni Sybase e nella documentazione online di Sybase è contenuta una documentazione estremamente minima che può essere riassunta in questo commento:

    Per vedere come viene utilizzato, eseguire sp_helptext e guardare il testo per una delle procedure di sistema che lo fa riferimento.

    In altre parole, leggi il codice e risolvilo da solo.

    Se si aggirano le procedure memorizzate del sistema e si esaminano i dati della tabella stessa, è abbastanza chiaro che la tabella viene utilizzata per tradurre i codici in stringhe leggibili (tra le altre cose). O come la documentazione di Sybase linkata sopra mette, “per convertire i valori di sistema interni […] in un formato leggibile”

    La tabella viene talvolta utilizzata anche nei frammenti di codice nei blog MSDN, ma mai nella documentazione formale, in genere come una comoda fonte di un elenco di numeri. Ma come discusso altrove , la creazione di una propria fonte di numeri è una soluzione più sicura e affidabile rispetto all’utilizzo di una tabella di sistema non documentata. Esiste anche una richiesta di connessione per fornire una tabella dei numeri “corretta” e documentata nello stesso SQL Server.

    Ad ogni modo, la tabella è completamente priva di documenti, quindi non c’è alcun valore significativo nel sapere nulla al riguardo, almeno dal punto di vista pratico: il prossimo service pack o aggiornamento potrebbe cambiarlo completamente. La curiosità intellettuale è un’altra cosa, ovviamente 🙂

    Per lo più risposto in un’altra domanda .

    Quali sono i significati del suo tipo, valori bassi e alti?

    La maggior parte dei tipi (ad esempio, ciascuna tabella di ricerca specifica, se erano separati) richiede Nome o Numero. Alcuni tipi richiedono anche colonne basse e alte. In Sybase, abbiamo una colonna ErrorNumber, quindi lo sproc può RAISERROR che non è hard-coded (può essere modificato con versioni, ecc.).

    Non è “criptico” a meno che una lista elencata non sia “criptica” per te; è solo una tabella di ricerca (tutti differenziati dalla colonna Tipo).