Saltar al contenido

¿Cuál es el propósito de la tabla del sistema master..spt_values ​​y cuál es el significado de sus valores?

Solución:

los spt_values La tabla no se menciona en la documentación de SQL Server, pero se remonta a los días de Sybase y hay una documentación extremadamente mínima en los documentos en línea de Sybase que se pueden resumir en este comentario:

Para ver cómo se usa, ejecute sp_helptext y busque en el texto uno de los procedimientos del sistema que lo hace referencia.

En otras palabras, lea el código y resuélvalo usted mismo.

Si revisa los procedimientos almacenados del sistema y examina los datos de la tabla en sí, está bastante claro que la tabla se usa para traducir códigos en cadenas legibles (entre otras cosas). O como dice la documentación de Sybase vinculada anteriormente, “convertir los valores internos del sistema […] en formato legible por humanos “

La tabla también se usa a veces en fragmentos de código en blogs de MSDN, pero nunca en documentación formal, generalmente como una fuente conveniente de una lista de números. Pero como se discutió en otra parte, crear su propia fuente de números es una solución más segura y confiable que usar una tabla de sistema no documentada. Incluso hay una solicitud de conexión para proporcionar una tabla numérica documentada “adecuada” en el propio SQL Server.

De todos modos, la tabla está completamente indocumentada, por lo que no tiene ningún valor saber nada al respecto, al menos desde un punto de vista práctico: el próximo servicepack o actualización podría cambiarlo por completo. La curiosidad intelectual es otra cosa, claro 🙂

Mayormente respondido en otra pregunta.

¿Cuáles son los significados de su tipo, valores bajos, altos?

La mayoría de los tipos (es decir, cada tabla de búsqueda específica, si estuvieran separados) requieren Nombre o Número. Algunos tipos también requieren columnas bajas y altas. En Sybase, tenemos una columna ErrorNumber, por lo que el sproc puede RAISERROR que no está codificado (puede haber cambios con versiones, etc.).

No es “críptico” a menos que una lista enumerada sea “críptica” para usted; es solo una tabla de búsqueda (todas ellas, diferenciadas por la columna Tipo).

Un uso, definitivamente no es su uso principal, es generar una serie de números:

--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
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *